{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MuseGAN Training"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import types\n",
    "\n",
    "from models.MuseGAN import MuseGAN\n",
    "from utils.loaders import load_music\n",
    "\n",
    "\n",
    "from music21 import midi\n",
    "from music21 import note, stream, duration\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# run params\n",
    "SECTION = 'compose'\n",
    "RUN_ID = '0017'\n",
    "DATA_NAME = 'chorales'\n",
    "FILENAME = 'Jsb16thSeparated.npz'\n",
    "RUN_FOLDER = 'run/{}/'.format(SECTION)\n",
    "RUN_FOLDER += '_'.join([RUN_ID, DATA_NAME])\n",
    "\n",
    "\n",
    "\n",
    "if not os.path.exists(RUN_FOLDER):\n",
    "    os.mkdir(RUN_FOLDER)\n",
    "    os.mkdir(os.path.join(RUN_FOLDER, 'viz'))\n",
    "    os.mkdir(os.path.join(RUN_FOLDER, 'images'))\n",
    "    os.mkdir(os.path.join(RUN_FOLDER, 'weights'))\n",
    "    os.mkdir(os.path.join(RUN_FOLDER, 'samples'))\n",
    "\n",
    "mode =  'build' # ' 'load' # "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "n_bars = 2\n",
    "n_steps_per_bar = 16\n",
    "n_pitches = 84\n",
    "n_tracks = 4\n",
    "\n",
    "data_binary, data_ints, raw_data = load_music(DATA_NAME, FILENAME, n_bars, n_steps_per_bar)\n",
    "data_binary = np.squeeze(data_binary)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## architecture"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "gan = MuseGAN(input_dim = data_binary.shape[1:]\n",
    "        , critic_learning_rate = 0.001\n",
    "        , generator_learning_rate = 0.001\n",
    "        , optimiser = 'adam'\n",
    "        , grad_weight = 10\n",
    "        , z_dim = 32\n",
    "        , batch_size = BATCH_SIZE\n",
    "        , n_tracks = n_tracks\n",
    "        , n_bars = n_bars\n",
    "        , n_steps_per_bar = n_steps_per_bar\n",
    "        , n_pitches = n_pitches\n",
    "        )\n",
    "\n",
    "if mode == 'build':\n",
    "    gan.save(RUN_FOLDER)\n",
    "else:                 \n",
    "    gan.load_weights(RUN_FOLDER)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "temporal_input (InputLayer)  (None, 32)                0         \n",
      "_________________________________________________________________\n",
      "reshape_1 (Reshape)          (None, 1, 1, 32)          0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_1 (Conv2DTr (None, 2, 1, 1024)        66560     \n",
      "_________________________________________________________________\n",
      "batch_normalization_1 (Batch (None, 2, 1, 1024)        4096      \n",
      "_________________________________________________________________\n",
      "activation_1 (Activation)    (None, 2, 1, 1024)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_2 (Conv2DTr (None, 2, 1, 32)          32800     \n",
      "_________________________________________________________________\n",
      "batch_normalization_2 (Batch (None, 2, 1, 32)          128       \n",
      "_________________________________________________________________\n",
      "activation_2 (Activation)    (None, 2, 1, 32)          0         \n",
      "_________________________________________________________________\n",
      "reshape_2 (Reshape)          (None, 2, 32)             0         \n",
      "=================================================================\n",
      "Total params: 103,584\n",
      "Trainable params: 101,472\n",
      "Non-trainable params: 2,112\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "gan.chords_tempNetwork.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "bar_generator_input (InputLa (None, 128)               0         \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 1024)              132096    \n",
      "_________________________________________________________________\n",
      "batch_normalization_11 (Batc (None, 1024)              4096      \n",
      "_________________________________________________________________\n",
      "activation_11 (Activation)   (None, 1024)              0         \n",
      "_________________________________________________________________\n",
      "reshape_11 (Reshape)         (None, 2, 1, 512)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_11 (Conv2DT (None, 4, 1, 512)         524800    \n",
      "_________________________________________________________________\n",
      "batch_normalization_12 (Batc (None, 4, 1, 512)         2048      \n",
      "_________________________________________________________________\n",
      "activation_12 (Activation)   (None, 4, 1, 512)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_12 (Conv2DT (None, 8, 1, 256)         262400    \n",
      "_________________________________________________________________\n",
      "batch_normalization_13 (Batc (None, 8, 1, 256)         1024      \n",
      "_________________________________________________________________\n",
      "activation_13 (Activation)   (None, 8, 1, 256)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_13 (Conv2DT (None, 16, 1, 256)        131328    \n",
      "_________________________________________________________________\n",
      "batch_normalization_14 (Batc (None, 16, 1, 256)        1024      \n",
      "_________________________________________________________________\n",
      "activation_14 (Activation)   (None, 16, 1, 256)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_14 (Conv2DT (None, 16, 7, 256)        459008    \n",
      "_________________________________________________________________\n",
      "batch_normalization_15 (Batc (None, 16, 7, 256)        1024      \n",
      "_________________________________________________________________\n",
      "activation_15 (Activation)   (None, 16, 7, 256)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_15 (Conv2DT (None, 16, 84, 1)         3073      \n",
      "_________________________________________________________________\n",
      "reshape_12 (Reshape)         (None, 1, 16, 84, 1)      0         \n",
      "=================================================================\n",
      "Total params: 1,521,921\n",
      "Trainable params: 1,517,313\n",
      "Non-trainable params: 4,608\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "gan.barGen[0].summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "melody_input (InputLayer)       (None, 4, 32)        0                                            \n",
      "__________________________________________________________________________________________________\n",
      "chords_input (InputLayer)       (None, 32)           0                                            \n",
      "__________________________________________________________________________________________________\n",
      "lambda_1 (Lambda)               (None, 32)           0           melody_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_2 (Lambda)               (None, 32)           0           melody_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_3 (Lambda)               (None, 32)           0           melody_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_4 (Lambda)               (None, 32)           0           melody_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "temporal_network (Model)        (None, 2, 32)        103584      chords_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "model_3 (Model)                 (None, 2, 32)        103584      lambda_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "groove_input (InputLayer)       (None, 4, 32)        0                                            \n",
      "__________________________________________________________________________________________________\n",
      "model_4 (Model)                 (None, 2, 32)        103584      lambda_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "model_5 (Model)                 (None, 2, 32)        103584      lambda_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "model_6 (Model)                 (None, 2, 32)        103584      lambda_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "chords_input_bar_0 (Lambda)     (None, 32)           0           temporal_network[1][0]           \n",
      "__________________________________________________________________________________________________\n",
      "style_input (InputLayer)        (None, 32)           0                                            \n",
      "__________________________________________________________________________________________________\n",
      "lambda_5 (Lambda)               (None, 32)           0           model_3[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_6 (Lambda)               (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_7 (Lambda)               (None, 32)           0           model_4[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_8 (Lambda)               (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_9 (Lambda)               (None, 32)           0           model_5[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_10 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_11 (Lambda)              (None, 32)           0           model_6[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_12 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "chords_input_bar_1 (Lambda)     (None, 32)           0           temporal_network[1][0]           \n",
      "__________________________________________________________________________________________________\n",
      "lambda_13 (Lambda)              (None, 32)           0           model_3[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_14 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_15 (Lambda)              (None, 32)           0           model_4[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_16 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_17 (Lambda)              (None, 32)           0           model_5[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_18 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "lambda_19 (Lambda)              (None, 32)           0           model_6[1][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "lambda_20 (Lambda)              (None, 32)           0           groove_input[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_0_track_0 (Conc (None, 128)          0           chords_input_bar_0[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_5[0][0]                   \n",
      "                                                                 lambda_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_0_track_1 (Conc (None, 128)          0           chords_input_bar_0[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_7[0][0]                   \n",
      "                                                                 lambda_8[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_0_track_2 (Conc (None, 128)          0           chords_input_bar_0[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_9[0][0]                   \n",
      "                                                                 lambda_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_0_track_3 (Conc (None, 128)          0           chords_input_bar_0[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_11[0][0]                  \n",
      "                                                                 lambda_12[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_1_track_0 (Conc (None, 128)          0           chords_input_bar_1[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_13[0][0]                  \n",
      "                                                                 lambda_14[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_1_track_1 (Conc (None, 128)          0           chords_input_bar_1[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_15[0][0]                  \n",
      "                                                                 lambda_16[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_1_track_2 (Conc (None, 128)          0           chords_input_bar_1[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_17[0][0]                  \n",
      "                                                                 lambda_18[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "total_input_bar_1_track_3 (Conc (None, 128)          0           chords_input_bar_1[0][0]         \n",
      "                                                                 style_input[0][0]                \n",
      "                                                                 lambda_19[0][0]                  \n",
      "                                                                 lambda_20[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "model_7 (Model)                 (None, 1, 16, 84, 1) 1521921     total_input_bar_0_track_0[0][0]  \n",
      "                                                                 total_input_bar_1_track_0[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "model_8 (Model)                 (None, 1, 16, 84, 1) 1521921     total_input_bar_0_track_1[0][0]  \n",
      "                                                                 total_input_bar_1_track_1[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "model_9 (Model)                 (None, 1, 16, 84, 1) 1521921     total_input_bar_0_track_2[0][0]  \n",
      "                                                                 total_input_bar_1_track_2[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "model_10 (Model)                (None, 1, 16, 84, 1) 1521921     total_input_bar_0_track_3[0][0]  \n",
      "                                                                 total_input_bar_1_track_3[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_1 (Concatenate)     (None, 1, 16, 84, 4) 0           model_7[1][0]                    \n",
      "                                                                 model_8[1][0]                    \n",
      "                                                                 model_9[1][0]                    \n",
      "                                                                 model_10[1][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_2 (Concatenate)     (None, 1, 16, 84, 4) 0           model_7[2][0]                    \n",
      "                                                                 model_8[2][0]                    \n",
      "                                                                 model_9[2][0]                    \n",
      "                                                                 model_10[2][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "concat_bars (Concatenate)       (None, 2, 16, 84, 4) 0           concatenate_1[0][0]              \n",
      "                                                                 concatenate_2[0][0]              \n",
      "==================================================================================================\n",
      "Total params: 6,605,604\n",
      "Trainable params: 6,576,612\n",
      "Non-trainable params: 28,992\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "gan.generator.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "critic_input (InputLayer)    (None, 2, 16, 84, 4)      0         \n",
      "_________________________________________________________________\n",
      "conv3d_1 (Conv3D)            (None, 1, 16, 84, 128)    1152      \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_1 (LeakyReLU)    (None, 1, 16, 84, 128)    0         \n",
      "_________________________________________________________________\n",
      "conv3d_2 (Conv3D)            (None, 1, 16, 84, 128)    16512     \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_2 (LeakyReLU)    (None, 1, 16, 84, 128)    0         \n",
      "_________________________________________________________________\n",
      "conv3d_3 (Conv3D)            (None, 1, 16, 7, 128)     196736    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_3 (LeakyReLU)    (None, 1, 16, 7, 128)     0         \n",
      "_________________________________________________________________\n",
      "conv3d_4 (Conv3D)            (None, 1, 16, 1, 128)     114816    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_4 (LeakyReLU)    (None, 1, 16, 1, 128)     0         \n",
      "_________________________________________________________________\n",
      "conv3d_5 (Conv3D)            (None, 1, 8, 1, 128)      32896     \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_5 (LeakyReLU)    (None, 1, 8, 1, 128)      0         \n",
      "_________________________________________________________________\n",
      "conv3d_6 (Conv3D)            (None, 1, 4, 1, 128)      32896     \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_6 (LeakyReLU)    (None, 1, 4, 1, 128)      0         \n",
      "_________________________________________________________________\n",
      "conv3d_7 (Conv3D)            (None, 1, 2, 1, 256)      131328    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_7 (LeakyReLU)    (None, 1, 2, 1, 256)      0         \n",
      "_________________________________________________________________\n",
      "conv3d_8 (Conv3D)            (None, 1, 1, 1, 512)      393728    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_8 (LeakyReLU)    (None, 1, 1, 1, 512)      0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1024)              525312    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_9 (LeakyReLU)    (None, 1024)              0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 1025      \n",
      "=================================================================\n",
      "Total params: 1,446,401\n",
      "Trainable params: 1,446,401\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "gan.critic.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "EPOCHS = 6000\n",
    "PRINT_EVERY_N_BATCHES = 10\n",
    "\n",
    "gan.epoch = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6026 (5, 1) [D loss: (-28.5)(R -43.2, F 2.7, G 1.2)] [G loss: -3.1]\n",
      "6027 (5, 1) [D loss: (-28.1)(R -40.2, F 3.2, G 0.9)] [G loss: -2.4]\n",
      "6028 (5, 1) [D loss: (-27.6)(R -44.7, F 4.3, G 1.3)] [G loss: -2.4]\n",
      "6029 (5, 1) [D loss: (-28.4)(R -39.3, F 1.6, G 0.9)] [G loss: -2.5]\n",
      "6030 (5, 1) [D loss: (-27.8)(R -43.9, F 6.1, G 1.0)] [G loss: -2.8]\n",
      "6031 (5, 1) [D loss: (-28.8)(R -38.9, F 2.3, G 0.8)] [G loss: -2.3]\n",
      "6032 (5, 1) [D loss: (-27.6)(R -42.6, F 2.3, G 1.3)] [G loss: 0.4]\n",
      "6033 (5, 1) [D loss: (-28.6)(R -40.3, F 2.4, G 0.9)] [G loss: -3.5]\n",
      "6034 (5, 1) [D loss: (-27.4)(R -38.2, F 2.0, G 0.9)] [G loss: -1.4]\n",
      "6035 (5, 1) [D loss: (-29.4)(R -40.4, F 2.8, G 0.8)] [G loss: -4.5]\n",
      "6036 (5, 1) [D loss: (-28.4)(R -46.4, F 3.9, G 1.4)] [G loss: -3.3]\n",
      "6037 (5, 1) [D loss: (-28.2)(R -42.0, F 2.6, G 1.1)] [G loss: -2.3]\n",
      "6038 (5, 1) [D loss: (-27.3)(R -40.6, F 2.9, G 1.0)] [G loss: -2.9]\n",
      "6039 (5, 1) [D loss: (-28.6)(R -43.7, F 4.8, G 1.0)] [G loss: -1.0]\n",
      "6040 (5, 1) [D loss: (-28.5)(R -39.7, F 2.9, G 0.8)] [G loss: -1.8]\n",
      "6041 (5, 1) [D loss: (-28.2)(R -38.3, F 1.9, G 0.8)] [G loss: -2.5]\n",
      "6042 (5, 1) [D loss: (-27.4)(R -38.9, F 3.5, G 0.8)] [G loss: -6.3]\n",
      "6043 (5, 1) [D loss: (-27.7)(R -41.2, F 3.0, G 1.0)] [G loss: -0.5]\n",
      "6044 (5, 1) [D loss: (-27.0)(R -39.5, F 2.4, G 1.0)] [G loss: -0.6]\n",
      "6045 (5, 1) [D loss: (-27.9)(R -38.8, F 1.1, G 1.0)] [G loss: -2.4]\n",
      "6046 (5, 1) [D loss: (-28.5)(R -39.9, F 2.5, G 0.9)] [G loss: -4.6]\n",
      "6047 (5, 1) [D loss: (-28.3)(R -48.2, F 7.9, G 1.2)] [G loss: -5.7]\n",
      "6048 (5, 1) [D loss: (-29.7)(R -36.9, F 1.2, G 0.6)] [G loss: -3.4]\n",
      "6049 (5, 1) [D loss: (-28.2)(R -41.5, F 2.6, G 1.1)] [G loss: -5.1]\n",
      "6050 (5, 1) [D loss: (-28.3)(R -39.7, F 1.0, G 1.0)] [G loss: -4.1]\n",
      "6051 (5, 1) [D loss: (-28.6)(R -41.4, F 1.2, G 1.2)] [G loss: -1.6]\n",
      "6052 (5, 1) [D loss: (-27.8)(R -45.3, F 3.8, G 1.4)] [G loss: -2.3]\n",
      "6053 (5, 1) [D loss: (-28.6)(R -40.4, F 2.0, G 1.0)] [G loss: -2.4]\n",
      "6054 (5, 1) [D loss: (-28.3)(R -41.9, F 2.8, G 1.1)] [G loss: -2.9]\n",
      "6055 (5, 1) [D loss: (-28.2)(R -39.9, F 3.1, G 0.9)] [G loss: -3.6]\n",
      "6056 (5, 1) [D loss: (-28.6)(R -41.2, F 2.1, G 1.0)] [G loss: -1.3]\n",
      "6057 (5, 1) [D loss: (-27.5)(R -38.9, F 0.8, G 1.1)] [G loss: -2.9]\n",
      "6058 (5, 1) [D loss: (-26.6)(R -33.9, F 0.8, G 0.6)] [G loss: -1.0]\n",
      "6059 (5, 1) [D loss: (-27.9)(R -40.1, F 2.5, G 1.0)] [G loss: -2.8]\n",
      "6060 (5, 1) [D loss: (-27.4)(R -35.8, F 0.3, G 0.8)] [G loss: -1.7]\n",
      "6061 (5, 1) [D loss: (-27.9)(R -44.2, F 3.7, G 1.3)] [G loss: -1.1]\n",
      "6062 (5, 1) [D loss: (-28.7)(R -39.8, F 3.2, G 0.8)] [G loss: -3.6]\n",
      "6063 (5, 1) [D loss: (-29.1)(R -43.9, F 3.7, G 1.1)] [G loss: -3.0]\n",
      "6064 (5, 1) [D loss: (-29.1)(R -43.3, F 4.5, G 1.0)] [G loss: -3.8]\n",
      "6065 (5, 1) [D loss: (-29.5)(R -41.0, F 2.2, G 0.9)] [G loss: -3.3]\n",
      "6066 (5, 1) [D loss: (-27.8)(R -35.6, F 0.1, G 0.8)] [G loss: -2.0]\n",
      "6067 (5, 1) [D loss: (-28.8)(R -39.7, F 2.8, G 0.8)] [G loss: -2.4]\n",
      "6068 (5, 1) [D loss: (-28.2)(R -38.2, F 1.5, G 0.9)] [G loss: -2.9]\n",
      "6069 (5, 1) [D loss: (-29.2)(R -43.8, F 5.0, G 1.0)] [G loss: -5.1]\n",
      "6070 (5, 1) [D loss: (-30.2)(R -42.1, F 1.7, G 1.0)] [G loss: -0.7]\n",
      "6071 (5, 1) [D loss: (-28.8)(R -40.0, F 1.5, G 1.0)] [G loss: -1.8]\n",
      "6072 (5, 1) [D loss: (-27.6)(R -36.8, F 1.5, G 0.8)] [G loss: -2.1]\n",
      "6073 (5, 1) [D loss: (-28.2)(R -44.9, F 4.7, G 1.2)] [G loss: -3.0]\n",
      "6074 (5, 1) [D loss: (-28.9)(R -40.5, F 3.0, G 0.9)] [G loss: -2.5]\n",
      "6075 (5, 1) [D loss: (-28.6)(R -39.1, F 2.3, G 0.8)] [G loss: -3.8]\n",
      "6076 (5, 1) [D loss: (-27.7)(R -42.6, F 3.6, G 1.1)] [G loss: -1.6]\n",
      "6077 (5, 1) [D loss: (-29.6)(R -45.7, F 5.3, G 1.1)] [G loss: -2.0]\n",
      "6078 (5, 1) [D loss: (-29.4)(R -42.5, F 4.4, G 0.9)] [G loss: -5.5]\n",
      "6079 (5, 1) [D loss: (-29.0)(R -41.7, F 1.8, G 1.1)] [G loss: -0.7]\n",
      "6080 (5, 1) [D loss: (-28.3)(R -43.2, F 3.6, G 1.1)] [G loss: -2.7]\n",
      "6081 (5, 1) [D loss: (-27.9)(R -39.3, F 2.1, G 0.9)] [G loss: -4.5]\n",
      "6082 (5, 1) [D loss: (-28.5)(R -41.2, F 3.4, G 0.9)] [G loss: -4.5]\n",
      "6083 (5, 1) [D loss: (-28.8)(R -45.5, F 6.0, G 1.1)] [G loss: -4.1]\n",
      "6084 (5, 1) [D loss: (-29.1)(R -38.7, F 1.8, G 0.8)] [G loss: -3.9]\n",
      "6085 (5, 1) [D loss: (-28.7)(R -41.4, F 3.8, G 0.9)] [G loss: -4.5]\n",
      "6086 (5, 1) [D loss: (-27.2)(R -42.1, F 2.0, G 1.3)] [G loss: -4.2]\n",
      "6087 (5, 1) [D loss: (-28.4)(R -41.8, F 1.5, G 1.2)] [G loss: -4.1]\n",
      "6088 (5, 1) [D loss: (-29.1)(R -38.7, F 1.4, G 0.8)] [G loss: -2.4]\n",
      "6089 (5, 1) [D loss: (-29.6)(R -38.5, F 0.1, G 0.9)] [G loss: -1.9]\n",
      "6090 (5, 1) [D loss: (-28.2)(R -37.3, F 1.5, G 0.8)] [G loss: -0.8]\n",
      "6091 (5, 1) [D loss: (-28.7)(R -40.7, F 2.0, G 1.0)] [G loss: -2.2]\n",
      "6092 (5, 1) [D loss: (-27.8)(R -41.2, F 2.3, G 1.1)] [G loss: -1.3]\n",
      "6093 (5, 1) [D loss: (-28.5)(R -41.4, F 3.0, G 1.0)] [G loss: -2.5]\n",
      "6094 (5, 1) [D loss: (-29.3)(R -40.3, F 2.4, G 0.9)] [G loss: -4.7]\n",
      "6095 (5, 1) [D loss: (-28.6)(R -38.4, F 0.7, G 0.9)] [G loss: -2.5]\n",
      "6096 (5, 1) [D loss: (-28.9)(R -39.2, F 1.7, G 0.9)] [G loss: -3.1]\n",
      "6097 (5, 1) [D loss: (-28.1)(R -40.4, F 2.7, G 1.0)] [G loss: -2.5]\n",
      "6098 (5, 1) [D loss: (-29.4)(R -41.9, F 3.8, G 0.9)] [G loss: -2.2]\n",
      "6099 (5, 1) [D loss: (-29.1)(R -40.5, F 2.7, G 0.9)] [G loss: -3.7]\n",
      "6100 (5, 1) [D loss: (-29.6)(R -37.8, F 0.6, G 0.8)] [G loss: -3.5]\n",
      "6101 (5, 1) [D loss: (-28.0)(R -43.3, F 4.2, G 1.1)] [G loss: -2.4]\n",
      "6102 (5, 1) [D loss: (-28.1)(R -47.4, F 4.0, G 1.5)] [G loss: -1.3]\n",
      "6103 (5, 1) [D loss: (-29.2)(R -41.5, F 2.8, G 0.9)] [G loss: -4.1]\n",
      "6104 (5, 1) [D loss: (-28.9)(R -41.5, F 3.8, G 0.9)] [G loss: -3.4]\n",
      "6105 (5, 1) [D loss: (-28.9)(R -42.3, F 4.1, G 0.9)] [G loss: -3.5]\n",
      "6106 (5, 1) [D loss: (-27.3)(R -34.2, F 1.0, G 0.6)] [G loss: -3.2]\n",
      "6107 (5, 1) [D loss: (-28.8)(R -43.1, F 4.9, G 0.9)] [G loss: -2.1]\n",
      "6108 (5, 1) [D loss: (-30.0)(R -40.4, F 3.8, G 0.7)] [G loss: -5.2]\n",
      "6109 (5, 1) [D loss: (-29.3)(R -41.0, F 2.1, G 1.0)] [G loss: -2.8]\n",
      "6110 (5, 1) [D loss: (-27.6)(R -39.2, F 1.9, G 1.0)] [G loss: -2.7]\n",
      "6111 (5, 1) [D loss: (-27.7)(R -41.9, F 4.1, G 1.0)] [G loss: 0.1]\n",
      "6112 (5, 1) [D loss: (-29.1)(R -38.5, F 1.4, G 0.8)] [G loss: -2.4]\n",
      "6113 (5, 1) [D loss: (-27.6)(R -47.0, F 5.0, G 1.4)] [G loss: -2.4]\n",
      "6114 (5, 1) [D loss: (-29.0)(R -36.7, F 0.5, G 0.7)] [G loss: -5.2]\n",
      "6115 (5, 1) [D loss: (-28.5)(R -40.9, F 2.8, G 1.0)] [G loss: -1.2]\n",
      "6116 (5, 1) [D loss: (-29.1)(R -46.3, F 4.1, G 1.3)] [G loss: -4.2]\n",
      "6117 (5, 1) [D loss: (-28.1)(R -43.7, F 3.6, G 1.2)] [G loss: -4.6]\n",
      "6118 (5, 1) [D loss: (-27.2)(R -47.2, F 6.6, G 1.3)] [G loss: 0.1]\n",
      "6119 (5, 1) [D loss: (-28.6)(R -44.2, F 3.3, G 1.2)] [G loss: -2.5]\n",
      "6120 (5, 1) [D loss: (-28.2)(R -39.4, F 1.3, G 1.0)] [G loss: -1.8]\n",
      "6121 (5, 1) [D loss: (-29.1)(R -41.6, F 2.8, G 1.0)] [G loss: -2.7]\n",
      "6122 (5, 1) [D loss: (-26.8)(R -44.6, F 3.8, G 1.4)] [G loss: 0.2]\n",
      "6123 (5, 1) [D loss: (-28.2)(R -39.2, F 2.6, G 0.8)] [G loss: -1.7]\n",
      "6124 (5, 1) [D loss: (-28.5)(R -39.4, F 2.0, G 0.9)] [G loss: -2.6]\n",
      "6125 (5, 1) [D loss: (-29.1)(R -37.4, F 1.0, G 0.7)] [G loss: -4.6]\n",
      "6126 (5, 1) [D loss: (-27.4)(R -39.7, F 0.6, G 1.2)] [G loss: -2.2]\n",
      "6127 (5, 1) [D loss: (-28.9)(R -41.8, F 3.0, G 1.0)] [G loss: -0.7]\n",
      "6128 (5, 1) [D loss: (-28.1)(R -36.5, F 2.0, G 0.6)] [G loss: -5.4]\n",
      "6129 (5, 1) [D loss: (-27.7)(R -38.0, F 1.5, G 0.9)] [G loss: -3.8]\n",
      "6130 (5, 1) [D loss: (-28.2)(R -38.1, F 1.1, G 0.9)] [G loss: -3.5]\n",
      "6131 (5, 1) [D loss: (-28.9)(R -43.1, F 4.5, G 1.0)] [G loss: -1.2]\n",
      "6132 (5, 1) [D loss: (-28.6)(R -37.1, F 0.7, G 0.8)] [G loss: -2.3]\n",
      "6133 (5, 1) [D loss: (-27.9)(R -43.8, F 4.2, G 1.2)] [G loss: -2.8]\n",
      "6134 (5, 1) [D loss: (-28.6)(R -43.3, F 4.1, G 1.1)] [G loss: -3.5]\n",
      "6135 (5, 1) [D loss: (-28.2)(R -37.7, F 1.8, G 0.8)] [G loss: -5.0]\n",
      "6136 (5, 1) [D loss: (-28.8)(R -41.4, F 2.5, G 1.0)] [G loss: -2.3]\n",
      "6137 (5, 1) [D loss: (-28.0)(R -37.3, F 1.9, G 0.7)] [G loss: -1.3]\n",
      "6138 (5, 1) [D loss: (-27.6)(R -36.1, F -0.0, G 0.9)] [G loss: -1.8]\n",
      "6139 (5, 1) [D loss: (-27.9)(R -42.0, F 2.7, G 1.1)] [G loss: -3.1]\n",
      "6140 (5, 1) [D loss: (-29.3)(R -45.3, F 4.0, G 1.2)] [G loss: -4.4]\n",
      "6141 (5, 1) [D loss: (-28.5)(R -42.7, F 3.3, G 1.1)] [G loss: -4.8]\n",
      "6142 (5, 1) [D loss: (-29.1)(R -45.3, F 1.8, G 1.4)] [G loss: -4.9]\n",
      "6143 (5, 1) [D loss: (-28.9)(R -45.4, F 3.1, G 1.3)] [G loss: -3.1]\n",
      "6144 (5, 1) [D loss: (-28.8)(R -41.0, F 2.5, G 1.0)] [G loss: -2.5]\n",
      "6145 (5, 1) [D loss: (-27.0)(R -37.6, F 3.0, G 0.8)] [G loss: -3.3]\n",
      "6146 (5, 1) [D loss: (-27.9)(R -43.1, F 4.2, G 1.1)] [G loss: -2.3]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6147 (5, 1) [D loss: (-28.7)(R -41.0, F 3.6, G 0.9)] [G loss: -3.9]\n",
      "6148 (5, 1) [D loss: (-28.3)(R -38.8, F 2.8, G 0.8)] [G loss: -3.8]\n",
      "6149 (5, 1) [D loss: (-28.1)(R -38.5, F 0.8, G 1.0)] [G loss: -3.7]\n",
      "6150 (5, 1) [D loss: (-26.5)(R -48.0, F 6.2, G 1.5)] [G loss: -1.4]\n",
      "6151 (5, 1) [D loss: (-28.0)(R -43.1, F 3.7, G 1.1)] [G loss: -0.8]\n",
      "6152 (5, 1) [D loss: (-28.2)(R -45.5, F 5.1, G 1.2)] [G loss: -2.0]\n",
      "6153 (5, 1) [D loss: (-28.6)(R -37.5, F 0.8, G 0.8)] [G loss: -2.5]\n",
      "6154 (5, 1) [D loss: (-27.6)(R -45.0, F 6.6, G 1.1)] [G loss: -2.6]\n",
      "6155 (5, 1) [D loss: (-27.9)(R -37.3, F 2.6, G 0.7)] [G loss: -2.4]\n",
      "6156 (5, 1) [D loss: (-28.5)(R -42.7, F 3.8, G 1.0)] [G loss: -4.2]\n",
      "6157 (5, 1) [D loss: (-27.9)(R -41.4, F 4.4, G 0.9)] [G loss: -5.7]\n",
      "6158 (5, 1) [D loss: (-28.5)(R -40.4, F 2.6, G 0.9)] [G loss: -4.0]\n",
      "6159 (5, 1) [D loss: (-28.5)(R -43.2, F 3.9, G 1.1)] [G loss: -0.3]\n",
      "6160 (5, 1) [D loss: (-27.2)(R -41.7, F 4.3, G 1.0)] [G loss: -1.7]\n",
      "6161 (5, 1) [D loss: (-29.1)(R -43.5, F 2.8, G 1.2)] [G loss: -4.2]\n",
      "6162 (5, 1) [D loss: (-30.1)(R -43.0, F 2.1, G 1.1)] [G loss: -2.1]\n",
      "6163 (5, 1) [D loss: (-28.3)(R -43.3, F 4.3, G 1.1)] [G loss: -0.6]\n",
      "6164 (5, 1) [D loss: (-28.2)(R -41.5, F 2.4, G 1.1)] [G loss: -1.9]\n",
      "6165 (5, 1) [D loss: (-28.2)(R -42.3, F 2.6, G 1.2)] [G loss: -3.0]\n",
      "6166 (5, 1) [D loss: (-28.1)(R -41.5, F 3.7, G 1.0)] [G loss: -2.9]\n",
      "6167 (5, 1) [D loss: (-28.0)(R -41.1, F 4.5, G 0.9)] [G loss: -7.7]\n",
      "6168 (5, 1) [D loss: (-28.0)(R -39.0, F 3.5, G 0.7)] [G loss: -5.0]\n",
      "6169 (5, 1) [D loss: (-28.2)(R -42.7, F 3.9, G 1.1)] [G loss: 0.4]\n",
      "6170 (5, 1) [D loss: (-27.9)(R -34.4, F -0.4, G 0.7)] [G loss: -3.0]\n",
      "6171 (5, 1) [D loss: (-27.2)(R -43.5, F 3.4, G 1.3)] [G loss: -0.6]\n",
      "6172 (5, 1) [D loss: (-28.9)(R -42.6, F 4.3, G 0.9)] [G loss: -2.8]\n",
      "6173 (5, 1) [D loss: (-28.5)(R -40.6, F 2.9, G 0.9)] [G loss: -2.4]\n",
      "6174 (5, 1) [D loss: (-28.1)(R -41.6, F 2.4, G 1.1)] [G loss: -1.8]\n",
      "6175 (5, 1) [D loss: (-29.5)(R -40.5, F 2.6, G 0.8)] [G loss: -3.7]\n",
      "6176 (5, 1) [D loss: (-28.1)(R -38.5, F 2.8, G 0.8)] [G loss: -3.8]\n",
      "6177 (5, 1) [D loss: (-28.0)(R -41.8, F 3.4, G 1.0)] [G loss: -2.8]\n",
      "6178 (5, 1) [D loss: (-28.1)(R -40.7, F 1.8, G 1.1)] [G loss: 0.0]\n",
      "6179 (5, 1) [D loss: (-29.6)(R -43.8, F 4.0, G 1.0)] [G loss: -1.8]\n",
      "6180 (5, 1) [D loss: (-26.8)(R -43.9, F 4.9, G 1.2)] [G loss: -0.4]\n",
      "6181 (5, 1) [D loss: (-28.7)(R -42.0, F 4.0, G 0.9)] [G loss: -4.4]\n",
      "6182 (5, 1) [D loss: (-28.2)(R -42.4, F 3.4, G 1.1)] [G loss: -1.7]\n",
      "6183 (5, 1) [D loss: (-28.6)(R -38.9, F 3.1, G 0.7)] [G loss: -3.2]\n",
      "6184 (5, 1) [D loss: (-29.3)(R -44.2, F 4.3, G 1.1)] [G loss: -3.7]\n",
      "6185 (5, 1) [D loss: (-29.0)(R -42.8, F 2.7, G 1.1)] [G loss: -4.4]\n",
      "6186 (5, 1) [D loss: (-28.4)(R -39.7, F 1.7, G 1.0)] [G loss: -2.2]\n",
      "6187 (5, 1) [D loss: (-27.7)(R -39.2, F 1.8, G 1.0)] [G loss: -3.4]\n",
      "6188 (5, 1) [D loss: (-27.0)(R -32.8, F -0.8, G 0.7)] [G loss: -7.0]\n",
      "6189 (5, 1) [D loss: (-28.2)(R -40.5, F 1.9, G 1.0)] [G loss: -0.9]\n",
      "6190 (5, 1) [D loss: (-28.1)(R -45.6, F 5.4, G 1.2)] [G loss: -2.2]\n",
      "6191 (5, 1) [D loss: (-28.0)(R -41.9, F 4.3, G 1.0)] [G loss: -3.1]\n",
      "6192 (5, 1) [D loss: (-28.2)(R -42.6, F 4.7, G 1.0)] [G loss: -4.1]\n",
      "6193 (5, 1) [D loss: (-29.4)(R -41.2, F 2.7, G 0.9)] [G loss: -5.3]\n",
      "6194 (5, 1) [D loss: (-29.2)(R -40.9, F 1.1, G 1.1)] [G loss: -3.7]\n",
      "6195 (5, 1) [D loss: (-27.7)(R -44.6, F 4.7, G 1.2)] [G loss: 0.4]\n",
      "6196 (5, 1) [D loss: (-28.8)(R -37.3, F 1.0, G 0.8)] [G loss: -3.3]\n",
      "6197 (5, 1) [D loss: (-28.8)(R -39.4, F 1.8, G 0.9)] [G loss: -3.8]\n",
      "6198 (5, 1) [D loss: (-28.3)(R -42.8, F 4.0, G 1.1)] [G loss: -4.2]\n",
      "6199 (5, 1) [D loss: (-28.2)(R -48.5, F 10.6, G 1.0)] [G loss: -7.4]\n",
      "6200 (5, 1) [D loss: (-28.0)(R -43.9, F 4.7, G 1.1)] [G loss: -1.5]\n",
      "6201 (5, 1) [D loss: (-28.2)(R -41.6, F 2.6, G 1.1)] [G loss: -0.5]\n",
      "6202 (5, 1) [D loss: (-28.7)(R -42.6, F 3.4, G 1.1)] [G loss: -3.9]\n",
      "6203 (5, 1) [D loss: (-27.5)(R -38.3, F 1.6, G 0.9)] [G loss: -1.1]\n",
      "6204 (5, 1) [D loss: (-27.9)(R -37.2, F 0.4, G 0.9)] [G loss: -2.0]\n",
      "6205 (5, 1) [D loss: (-29.6)(R -45.9, F 3.9, G 1.2)] [G loss: -6.4]\n",
      "6206 (5, 1) [D loss: (-28.1)(R -41.1, F 2.7, G 1.0)] [G loss: -1.3]\n",
      "6207 (5, 1) [D loss: (-29.8)(R -48.0, F 6.0, G 1.2)] [G loss: -5.8]\n",
      "6208 (5, 1) [D loss: (-28.2)(R -41.7, F 1.7, G 1.2)] [G loss: -3.0]\n",
      "6209 (5, 1) [D loss: (-28.4)(R -37.7, F 2.0, G 0.7)] [G loss: -1.9]\n",
      "6210 (5, 1) [D loss: (-28.7)(R -39.1, F 2.3, G 0.8)] [G loss: -4.7]\n",
      "6211 (5, 1) [D loss: (-28.5)(R -44.2, F 4.4, G 1.1)] [G loss: -1.9]\n",
      "6212 (5, 1) [D loss: (-28.0)(R -35.3, F 0.6, G 0.7)] [G loss: -3.5]\n",
      "6213 (5, 1) [D loss: (-29.5)(R -41.5, F 2.4, G 1.0)] [G loss: -3.3]\n",
      "6214 (5, 1) [D loss: (-29.7)(R -41.4, F 2.2, G 0.9)] [G loss: -3.3]\n",
      "6215 (5, 1) [D loss: (-28.4)(R -42.5, F 3.9, G 1.0)] [G loss: -3.8]\n",
      "6216 (5, 1) [D loss: (-28.3)(R -41.9, F 2.7, G 1.1)] [G loss: -1.0]\n",
      "6217 (5, 1) [D loss: (-28.3)(R -40.8, F 2.7, G 1.0)] [G loss: -1.2]\n",
      "6218 (5, 1) [D loss: (-26.4)(R -32.5, F 0.6, G 0.6)] [G loss: -2.5]\n",
      "6219 (5, 1) [D loss: (-29.3)(R -40.9, F 3.8, G 0.8)] [G loss: -6.1]\n",
      "6220 (5, 1) [D loss: (-28.2)(R -41.0, F 4.2, G 0.9)] [G loss: -3.2]\n",
      "6221 (5, 1) [D loss: (-28.6)(R -37.3, F -0.2, G 0.9)] [G loss: -6.5]\n",
      "6222 (5, 1) [D loss: (-29.8)(R -43.7, F 3.2, G 1.1)] [G loss: -2.9]\n",
      "6223 (5, 1) [D loss: (-28.3)(R -40.8, F 2.5, G 1.0)] [G loss: -0.8]\n",
      "6224 (5, 1) [D loss: (-28.8)(R -43.4, F 3.5, G 1.1)] [G loss: -2.3]\n",
      "6225 (5, 1) [D loss: (-27.8)(R -36.9, F 0.8, G 0.8)] [G loss: -4.7]\n",
      "6226 (5, 1) [D loss: (-28.4)(R -42.6, F 3.4, G 1.1)] [G loss: -1.3]\n",
      "6227 (5, 1) [D loss: (-28.5)(R -36.5, F 1.6, G 0.6)] [G loss: -0.6]\n",
      "6228 (5, 1) [D loss: (-28.4)(R -43.4, F 4.8, G 1.0)] [G loss: -2.7]\n",
      "6229 (5, 1) [D loss: (-28.3)(R -39.1, F 3.1, G 0.8)] [G loss: -3.5]\n",
      "6230 (5, 1) [D loss: (-29.6)(R -44.2, F 4.6, G 1.0)] [G loss: -2.0]\n",
      "6231 (5, 1) [D loss: (-27.9)(R -40.4, F 2.7, G 1.0)] [G loss: -1.9]\n",
      "6232 (5, 1) [D loss: (-29.2)(R -42.7, F 3.8, G 1.0)] [G loss: -3.3]\n",
      "6233 (5, 1) [D loss: (-29.3)(R -39.2, F 2.5, G 0.7)] [G loss: -4.8]\n",
      "6234 (5, 1) [D loss: (-27.5)(R -43.6, F 4.9, G 1.1)] [G loss: -2.1]\n",
      "6235 (5, 1) [D loss: (-29.9)(R -44.2, F 4.3, G 1.0)] [G loss: -3.4]\n",
      "6236 (5, 1) [D loss: (-26.9)(R -46.2, F 3.1, G 1.6)] [G loss: -1.8]\n",
      "6237 (5, 1) [D loss: (-28.6)(R -34.1, F -1.6, G 0.7)] [G loss: -3.8]\n",
      "6238 (5, 1) [D loss: (-28.4)(R -39.3, F 2.4, G 0.9)] [G loss: -1.6]\n",
      "6239 (5, 1) [D loss: (-28.0)(R -39.0, F 2.7, G 0.8)] [G loss: -5.2]\n",
      "6240 (5, 1) [D loss: (-28.0)(R -49.7, F 6.1, G 1.6)] [G loss: -1.1]\n",
      "6241 (5, 1) [D loss: (-28.0)(R -38.8, F 2.0, G 0.9)] [G loss: -4.6]\n",
      "6242 (5, 1) [D loss: (-27.7)(R -43.2, F 4.2, G 1.1)] [G loss: -2.0]\n",
      "6243 (5, 1) [D loss: (-29.6)(R -41.8, F 2.7, G 1.0)] [G loss: -4.4]\n",
      "6244 (5, 1) [D loss: (-28.4)(R -39.7, F 2.2, G 0.9)] [G loss: -0.9]\n",
      "6245 (5, 1) [D loss: (-28.2)(R -43.9, F 4.3, G 1.1)] [G loss: -3.1]\n",
      "6246 (5, 1) [D loss: (-28.8)(R -40.2, F 2.1, G 0.9)] [G loss: -2.0]\n",
      "6247 (5, 1) [D loss: (-26.9)(R -36.2, F -0.1, G 0.9)] [G loss: -6.0]\n",
      "6248 (5, 1) [D loss: (-30.3)(R -43.9, F 3.8, G 1.0)] [G loss: -4.9]\n",
      "6249 (5, 1) [D loss: (-29.4)(R -42.7, F 1.8, G 1.1)] [G loss: -3.5]\n",
      "6250 (5, 1) [D loss: (-29.0)(R -42.2, F 2.0, G 1.1)] [G loss: -1.8]\n",
      "6251 (5, 1) [D loss: (-27.6)(R -36.8, F 0.1, G 0.9)] [G loss: -2.4]\n",
      "6252 (5, 1) [D loss: (-29.8)(R -39.7, F 2.1, G 0.8)] [G loss: -2.7]\n",
      "6253 (5, 1) [D loss: (-28.4)(R -38.5, F 0.5, G 1.0)] [G loss: -4.4]\n",
      "6254 (5, 1) [D loss: (-29.0)(R -40.2, F 2.6, G 0.9)] [G loss: -3.9]\n",
      "6255 (5, 1) [D loss: (-29.3)(R -42.9, F 5.1, G 0.9)] [G loss: -3.9]\n",
      "6256 (5, 1) [D loss: (-28.2)(R -41.5, F 3.4, G 1.0)] [G loss: -1.6]\n",
      "6257 (5, 1) [D loss: (-27.9)(R -41.0, F 2.8, G 1.0)] [G loss: -1.3]\n",
      "6258 (5, 1) [D loss: (-28.4)(R -44.0, F 4.4, G 1.1)] [G loss: -1.9]\n",
      "6259 (5, 1) [D loss: (-30.0)(R -43.3, F 4.1, G 0.9)] [G loss: -4.1]\n",
      "6260 (5, 1) [D loss: (-29.6)(R -40.9, F 3.3, G 0.8)] [G loss: -3.0]\n",
      "6261 (5, 1) [D loss: (-28.0)(R -44.2, F 3.8, G 1.2)] [G loss: -2.0]\n",
      "6262 (5, 1) [D loss: (-29.7)(R -48.0, F 7.4, G 1.1)] [G loss: -5.1]\n",
      "6263 (5, 1) [D loss: (-28.0)(R -38.0, F 1.0, G 0.9)] [G loss: -2.8]\n",
      "6264 (5, 1) [D loss: (-29.0)(R -41.5, F 2.9, G 1.0)] [G loss: -3.5]\n",
      "6265 (5, 1) [D loss: (-28.6)(R -39.4, F 1.7, G 0.9)] [G loss: -3.1]\n",
      "6266 (5, 1) [D loss: (-28.7)(R -39.0, F 2.6, G 0.8)] [G loss: -1.5]\n",
      "6267 (5, 1) [D loss: (-27.3)(R -40.6, F 3.2, G 1.0)] [G loss: -1.9]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6268 (5, 1) [D loss: (-27.3)(R -42.8, F 3.3, G 1.2)] [G loss: -2.7]\n",
      "6269 (5, 1) [D loss: (-28.6)(R -37.0, F 1.6, G 0.7)] [G loss: -2.6]\n",
      "6270 (5, 1) [D loss: (-28.9)(R -41.7, F 2.3, G 1.0)] [G loss: -3.2]\n",
      "6271 (5, 1) [D loss: (-28.0)(R -43.8, F 4.5, G 1.1)] [G loss: -2.5]\n",
      "6272 (5, 1) [D loss: (-27.0)(R -43.2, F 5.5, G 1.1)] [G loss: -3.3]\n",
      "6273 (5, 1) [D loss: (-28.6)(R -40.2, F 2.8, G 0.9)] [G loss: -0.9]\n",
      "6274 (5, 1) [D loss: (-28.3)(R -39.4, F 2.5, G 0.9)] [G loss: -3.1]\n",
      "6275 (5, 1) [D loss: (-27.7)(R -37.4, F 1.0, G 0.9)] [G loss: -4.8]\n",
      "6276 (5, 1) [D loss: (-29.5)(R -44.6, F 4.0, G 1.1)] [G loss: -4.3]\n",
      "6277 (5, 1) [D loss: (-28.3)(R -40.1, F 4.0, G 0.8)] [G loss: -2.5]\n",
      "6278 (5, 1) [D loss: (-29.6)(R -41.5, F 2.4, G 1.0)] [G loss: -4.0]\n",
      "6279 (5, 1) [D loss: (-29.1)(R -40.7, F 1.6, G 1.0)] [G loss: -3.2]\n",
      "6280 (5, 1) [D loss: (-27.4)(R -40.2, F 1.6, G 1.1)] [G loss: -0.6]\n",
      "6281 (5, 1) [D loss: (-27.9)(R -40.7, F 3.4, G 0.9)] [G loss: -0.5]\n",
      "6282 (5, 1) [D loss: (-30.1)(R -50.1, F 7.8, G 1.2)] [G loss: -4.6]\n",
      "6283 (5, 1) [D loss: (-29.3)(R -40.3, F 2.7, G 0.8)] [G loss: -4.9]\n",
      "6284 (5, 1) [D loss: (-29.8)(R -44.0, F 3.7, G 1.1)] [G loss: -4.5]\n",
      "6285 (5, 1) [D loss: (-28.0)(R -41.0, F 1.3, G 1.2)] [G loss: -1.7]\n",
      "6286 (5, 1) [D loss: (-29.2)(R -39.7, F 1.4, G 0.9)] [G loss: -2.9]\n",
      "6287 (5, 1) [D loss: (-26.9)(R -41.1, F 2.4, G 1.2)] [G loss: -2.9]\n",
      "6288 (5, 1) [D loss: (-28.5)(R -41.1, F 2.8, G 1.0)] [G loss: -2.9]\n",
      "6289 (5, 1) [D loss: (-30.0)(R -41.6, F 3.6, G 0.8)] [G loss: -5.6]\n",
      "6290 (5, 1) [D loss: (-27.9)(R -41.5, F 1.7, G 1.2)] [G loss: -1.6]\n",
      "6291 (5, 1) [D loss: (-28.7)(R -41.7, F 2.3, G 1.1)] [G loss: -0.2]\n",
      "6292 (5, 1) [D loss: (-29.3)(R -43.1, F 3.1, G 1.1)] [G loss: -2.1]\n",
      "6293 (5, 1) [D loss: (-28.2)(R -47.5, F 4.3, G 1.5)] [G loss: -1.6]\n",
      "6294 (5, 1) [D loss: (-28.6)(R -36.5, F 1.0, G 0.7)] [G loss: -3.7]\n",
      "6295 (5, 1) [D loss: (-27.3)(R -40.0, F 1.8, G 1.1)] [G loss: -1.1]\n",
      "6296 (5, 1) [D loss: (-27.8)(R -42.0, F 1.6, G 1.3)] [G loss: -6.0]\n",
      "6297 (5, 1) [D loss: (-27.8)(R -38.8, F 2.3, G 0.9)] [G loss: -5.8]\n",
      "6298 (5, 1) [D loss: (-28.4)(R -36.5, F 1.0, G 0.7)] [G loss: -1.9]\n",
      "6299 (5, 1) [D loss: (-28.5)(R -40.2, F 2.5, G 0.9)] [G loss: -2.6]\n",
      "6300 (5, 1) [D loss: (-28.5)(R -41.3, F 2.0, G 1.1)] [G loss: -1.0]\n",
      "6301 (5, 1) [D loss: (-27.5)(R -39.0, F 0.4, G 1.1)] [G loss: -0.5]\n",
      "6302 (5, 1) [D loss: (-28.0)(R -37.4, F 1.8, G 0.8)] [G loss: -3.3]\n",
      "6303 (5, 1) [D loss: (-28.0)(R -44.5, F 4.4, G 1.2)] [G loss: -3.9]\n",
      "6304 (5, 1) [D loss: (-28.4)(R -42.9, F 5.1, G 1.0)] [G loss: -0.6]\n",
      "6305 (5, 1) [D loss: (-28.3)(R -48.3, F 6.2, G 1.4)] [G loss: -2.7]\n",
      "6306 (5, 1) [D loss: (-28.7)(R -39.5, F 1.8, G 0.9)] [G loss: -5.0]\n",
      "6307 (5, 1) [D loss: (-29.2)(R -46.0, F 5.6, G 1.1)] [G loss: -3.4]\n",
      "6308 (5, 1) [D loss: (-27.8)(R -36.7, F 1.2, G 0.8)] [G loss: -1.3]\n",
      "6309 (5, 1) [D loss: (-28.8)(R -44.0, F 4.6, G 1.1)] [G loss: -2.2]\n",
      "6310 (5, 1) [D loss: (-28.3)(R -38.3, F 2.2, G 0.8)] [G loss: -2.3]\n",
      "6311 (5, 1) [D loss: (-29.6)(R -42.1, F 0.9, G 1.2)] [G loss: -3.8]\n",
      "6312 (5, 1) [D loss: (-28.4)(R -40.4, F 0.9, G 1.1)] [G loss: -5.2]\n",
      "6313 (5, 1) [D loss: (-27.5)(R -44.2, F 5.2, G 1.2)] [G loss: -3.2]\n",
      "6314 (5, 1) [D loss: (-29.2)(R -42.2, F 4.0, G 0.9)] [G loss: -3.8]\n",
      "6315 (5, 1) [D loss: (-27.9)(R -39.9, F 1.7, G 1.0)] [G loss: -1.4]\n",
      "6316 (5, 1) [D loss: (-28.5)(R -40.6, F 3.6, G 0.9)] [G loss: -3.0]\n",
      "6317 (5, 1) [D loss: (-27.8)(R -31.5, F -1.9, G 0.6)] [G loss: -3.7]\n",
      "6318 (5, 1) [D loss: (-28.3)(R -36.6, F 0.2, G 0.8)] [G loss: -1.4]\n",
      "6319 (5, 1) [D loss: (-27.1)(R -41.9, F 3.5, G 1.1)] [G loss: -3.8]\n",
      "6320 (5, 1) [D loss: (-28.4)(R -41.5, F 3.9, G 0.9)] [G loss: -3.5]\n",
      "6321 (5, 1) [D loss: (-28.2)(R -36.0, F 0.2, G 0.8)] [G loss: -3.3]\n",
      "6322 (5, 1) [D loss: (-28.9)(R -41.7, F 2.0, G 1.1)] [G loss: -2.3]\n",
      "6323 (5, 1) [D loss: (-27.1)(R -40.6, F 2.9, G 1.1)] [G loss: -0.5]\n",
      "6324 (5, 1) [D loss: (-28.3)(R -39.0, F 2.9, G 0.8)] [G loss: -3.4]\n",
      "6325 (5, 1) [D loss: (-28.4)(R -41.6, F 3.3, G 1.0)] [G loss: -2.6]\n",
      "6326 (5, 1) [D loss: (-28.5)(R -44.8, F 5.1, G 1.1)] [G loss: -0.8]\n",
      "6327 (5, 1) [D loss: (-28.6)(R -43.8, F 2.9, G 1.2)] [G loss: -1.3]\n",
      "6328 (5, 1) [D loss: (-28.5)(R -41.2, F 3.4, G 0.9)] [G loss: -3.7]\n",
      "6329 (5, 1) [D loss: (-27.5)(R -44.2, F 4.6, G 1.2)] [G loss: 0.9]\n",
      "6330 (5, 1) [D loss: (-29.5)(R -40.1, F 2.0, G 0.9)] [G loss: -2.8]\n",
      "6331 (5, 1) [D loss: (-28.3)(R -43.8, F 4.7, G 1.1)] [G loss: -3.6]\n",
      "6332 (5, 1) [D loss: (-29.7)(R -42.8, F 3.3, G 1.0)] [G loss: -2.3]\n",
      "6333 (5, 1) [D loss: (-27.2)(R -39.2, F 2.3, G 1.0)] [G loss: 1.0]\n",
      "6334 (5, 1) [D loss: (-29.0)(R -43.0, F 3.7, G 1.0)] [G loss: -3.4]\n",
      "6335 (5, 1) [D loss: (-27.5)(R -39.2, F 2.8, G 0.9)] [G loss: -0.9]\n",
      "6336 (5, 1) [D loss: (-27.3)(R -35.4, F -1.1, G 0.9)] [G loss: -4.1]\n",
      "6337 (5, 1) [D loss: (-27.7)(R -40.8, F 1.6, G 1.1)] [G loss: -4.4]\n",
      "6338 (5, 1) [D loss: (-29.3)(R -39.0, F 2.4, G 0.7)] [G loss: -3.9]\n",
      "6339 (5, 1) [D loss: (-28.0)(R -40.9, F 1.6, G 1.1)] [G loss: -0.5]\n",
      "6340 (5, 1) [D loss: (-28.2)(R -37.8, F 0.7, G 0.9)] [G loss: -2.9]\n",
      "6341 (5, 1) [D loss: (-28.1)(R -44.1, F 3.8, G 1.2)] [G loss: -0.8]\n",
      "6342 (5, 1) [D loss: (-27.7)(R -40.4, F 1.9, G 1.1)] [G loss: -0.5]\n",
      "6343 (5, 1) [D loss: (-27.3)(R -39.3, F 2.0, G 1.0)] [G loss: -2.5]\n",
      "6344 (5, 1) [D loss: (-28.1)(R -35.7, F -0.2, G 0.8)] [G loss: -1.5]\n",
      "6345 (5, 1) [D loss: (-28.0)(R -42.0, F 2.3, G 1.2)] [G loss: -3.8]\n",
      "6346 (5, 1) [D loss: (-28.1)(R -42.0, F 3.2, G 1.1)] [G loss: -3.3]\n",
      "6347 (5, 1) [D loss: (-28.2)(R -39.5, F 2.5, G 0.9)] [G loss: -2.6]\n",
      "6348 (5, 1) [D loss: (-29.0)(R -43.2, F 5.3, G 0.9)] [G loss: -4.9]\n",
      "6349 (5, 1) [D loss: (-27.5)(R -44.8, F 4.9, G 1.2)] [G loss: -0.9]\n",
      "6350 (5, 1) [D loss: (-28.3)(R -41.0, F 2.6, G 1.0)] [G loss: -1.9]\n",
      "6351 (5, 1) [D loss: (-29.3)(R -39.7, F 2.7, G 0.8)] [G loss: -2.4]\n",
      "6352 (5, 1) [D loss: (-28.8)(R -38.9, F 3.4, G 0.7)] [G loss: -5.8]\n",
      "6353 (5, 1) [D loss: (-28.9)(R -37.4, F 0.6, G 0.8)] [G loss: -4.2]\n",
      "6354 (5, 1) [D loss: (-29.0)(R -42.2, F 3.0, G 1.0)] [G loss: -3.6]\n",
      "6355 (5, 1) [D loss: (-28.9)(R -43.7, F 2.3, G 1.2)] [G loss: -4.6]\n",
      "6356 (5, 1) [D loss: (-28.4)(R -39.2, F 0.6, G 1.0)] [G loss: -1.8]\n",
      "6357 (5, 1) [D loss: (-29.0)(R -38.8, F 2.9, G 0.7)] [G loss: -4.0]\n",
      "6358 (5, 1) [D loss: (-28.4)(R -37.9, F 1.2, G 0.8)] [G loss: -3.1]\n",
      "6359 (5, 1) [D loss: (-27.2)(R -42.9, F 3.4, G 1.2)] [G loss: -2.3]\n",
      "6360 (5, 1) [D loss: (-29.8)(R -42.9, F 3.4, G 1.0)] [G loss: -3.8]\n",
      "6361 (5, 1) [D loss: (-27.7)(R -41.0, F 2.0, G 1.1)] [G loss: -2.2]\n",
      "6362 (5, 1) [D loss: (-28.5)(R -41.3, F 5.7, G 0.7)] [G loss: -7.4]\n",
      "6363 (5, 1) [D loss: (-28.3)(R -43.4, F 2.9, G 1.2)] [G loss: -3.4]\n",
      "6364 (5, 1) [D loss: (-28.4)(R -36.6, F 0.9, G 0.7)] [G loss: -2.6]\n",
      "6365 (5, 1) [D loss: (-27.4)(R -42.8, F 3.8, G 1.2)] [G loss: -1.6]\n",
      "6366 (5, 1) [D loss: (-28.8)(R -40.9, F 3.7, G 0.8)] [G loss: -6.4]\n",
      "6367 (5, 1) [D loss: (-29.8)(R -43.3, F 4.0, G 0.9)] [G loss: -2.7]\n",
      "6368 (5, 1) [D loss: (-28.3)(R -37.6, F 1.2, G 0.8)] [G loss: -3.6]\n",
      "6369 (5, 1) [D loss: (-28.7)(R -43.1, F 3.1, G 1.1)] [G loss: -2.5]\n",
      "6370 (5, 1) [D loss: (-27.1)(R -45.2, F 4.9, G 1.3)] [G loss: -2.3]\n",
      "6371 (5, 1) [D loss: (-29.5)(R -42.0, F 4.6, G 0.8)] [G loss: -2.6]\n",
      "6372 (5, 1) [D loss: (-28.5)(R -44.7, F 4.1, G 1.2)] [G loss: -2.6]\n",
      "6373 (5, 1) [D loss: (-29.4)(R -37.3, F 1.7, G 0.6)] [G loss: -4.0]\n",
      "6374 (5, 1) [D loss: (-29.2)(R -41.6, F 3.3, G 0.9)] [G loss: -2.0]\n",
      "6375 (5, 1) [D loss: (-29.1)(R -47.2, F 5.8, G 1.2)] [G loss: -2.4]\n",
      "6376 (5, 1) [D loss: (-28.5)(R -39.0, F 0.8, G 1.0)] [G loss: -0.3]\n",
      "6377 (5, 1) [D loss: (-28.1)(R -43.5, F 3.3, G 1.2)] [G loss: -1.5]\n",
      "6378 (5, 1) [D loss: (-29.1)(R -40.0, F 1.6, G 0.9)] [G loss: -2.5]\n",
      "6379 (5, 1) [D loss: (-28.0)(R -44.6, F 3.9, G 1.3)] [G loss: -3.7]\n",
      "6380 (5, 1) [D loss: (-27.8)(R -45.8, F 5.9, G 1.2)] [G loss: -3.5]\n",
      "6381 (5, 1) [D loss: (-27.6)(R -43.6, F 4.6, G 1.1)] [G loss: -3.0]\n",
      "6382 (5, 1) [D loss: (-27.4)(R -42.5, F 4.3, G 1.1)] [G loss: -2.8]\n",
      "6383 (5, 1) [D loss: (-28.2)(R -44.3, F 3.2, G 1.3)] [G loss: -2.5]\n",
      "6384 (5, 1) [D loss: (-28.2)(R -38.3, F 1.6, G 0.9)] [G loss: -4.3]\n",
      "6385 (5, 1) [D loss: (-28.6)(R -39.6, F 2.7, G 0.8)] [G loss: -2.8]\n",
      "6386 (5, 1) [D loss: (-29.1)(R -43.9, F 4.1, G 1.1)] [G loss: -3.8]\n",
      "6387 (5, 1) [D loss: (-26.6)(R -31.2, F -1.0, G 0.6)] [G loss: -7.7]\n",
      "6388 (5, 1) [D loss: (-29.3)(R -44.7, F 5.3, G 1.0)] [G loss: -4.8]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6389 (5, 1) [D loss: (-28.3)(R -40.7, F 2.5, G 1.0)] [G loss: -3.2]\n",
      "6390 (5, 1) [D loss: (-30.4)(R -45.0, F 4.1, G 1.0)] [G loss: -7.1]\n",
      "6391 (5, 1) [D loss: (-28.1)(R -38.2, F 2.0, G 0.8)] [G loss: -1.6]\n",
      "6392 (5, 1) [D loss: (-28.4)(R -35.4, F -0.7, G 0.8)] [G loss: -2.8]\n",
      "6393 (5, 1) [D loss: (-28.7)(R -42.5, F 1.6, G 1.2)] [G loss: -3.5]\n",
      "6394 (5, 1) [D loss: (-29.1)(R -42.5, F 2.9, G 1.1)] [G loss: -0.8]\n",
      "6395 (5, 1) [D loss: (-29.4)(R -42.7, F 4.9, G 0.8)] [G loss: -4.2]\n",
      "6396 (5, 1) [D loss: (-28.6)(R -44.8, F 3.9, G 1.2)] [G loss: -1.6]\n",
      "6397 (5, 1) [D loss: (-25.9)(R -43.4, F 3.0, G 1.4)] [G loss: -1.2]\n",
      "6398 (5, 1) [D loss: (-28.0)(R -35.7, F 0.9, G 0.7)] [G loss: -3.0]\n",
      "6399 (5, 1) [D loss: (-28.3)(R -44.3, F 4.4, G 1.2)] [G loss: -5.4]\n",
      "6400 (5, 1) [D loss: (-29.2)(R -41.1, F 2.0, G 1.0)] [G loss: -0.9]\n",
      "6401 (5, 1) [D loss: (-28.4)(R -35.7, F -0.2, G 0.7)] [G loss: -0.8]\n",
      "6402 (5, 1) [D loss: (-27.6)(R -44.4, F 3.9, G 1.3)] [G loss: -3.3]\n",
      "6403 (5, 1) [D loss: (-28.1)(R -43.6, F 3.7, G 1.2)] [G loss: -1.4]\n",
      "6404 (5, 1) [D loss: (-28.7)(R -40.8, F 2.1, G 1.0)] [G loss: -4.0]\n",
      "6405 (5, 1) [D loss: (-29.1)(R -42.6, F 2.7, G 1.1)] [G loss: -4.0]\n",
      "6406 (5, 1) [D loss: (-29.3)(R -42.3, F 2.8, G 1.0)] [G loss: -2.3]\n",
      "6407 (5, 1) [D loss: (-27.6)(R -33.8, F -2.3, G 0.9)] [G loss: -4.7]\n",
      "6408 (5, 1) [D loss: (-29.6)(R -38.7, F 1.2, G 0.8)] [G loss: -2.2]\n",
      "6409 (5, 1) [D loss: (-28.8)(R -45.7, F 5.5, G 1.1)] [G loss: -2.3]\n",
      "6410 (5, 1) [D loss: (-29.9)(R -41.5, F 4.2, G 0.7)] [G loss: -7.4]\n",
      "6411 (5, 1) [D loss: (-28.1)(R -36.2, F -0.4, G 0.8)] [G loss: -1.7]\n",
      "6412 (5, 1) [D loss: (-25.5)(R -51.1, F 6.8, G 1.9)] [G loss: 0.6]\n",
      "6413 (5, 1) [D loss: (-28.9)(R -40.7, F 2.8, G 0.9)] [G loss: -2.8]\n",
      "6414 (5, 1) [D loss: (-28.8)(R -44.8, F 5.3, G 1.1)] [G loss: -2.4]\n",
      "6415 (5, 1) [D loss: (-29.4)(R -43.7, F 4.0, G 1.0)] [G loss: -2.9]\n",
      "6416 (5, 1) [D loss: (-27.7)(R -39.6, F 1.0, G 1.1)] [G loss: -2.8]\n",
      "6417 (5, 1) [D loss: (-28.7)(R -43.7, F 3.1, G 1.2)] [G loss: -3.8]\n",
      "6418 (5, 1) [D loss: (-27.4)(R -36.3, F 2.3, G 0.7)] [G loss: -2.9]\n"
     ]
    }
   ],
   "source": [
    "gan.train(     \n",
    "    data_binary\n",
    "    , batch_size = BATCH_SIZE\n",
    "    , epochs = EPOCHS\n",
    "    , run_folder = RUN_FOLDER\n",
    "    , print_every_n_batches = PRINT_EVERY_N_BATCHES\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#######"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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A5h17Jh4f+KJfgKemqZDh8zLH3ZY1fm3bl1xPAQPFpOnnX124v1NN5k984yn6d69cn7xiykb89pyy8T7I48069Ejc9p//tOsXz+z7bf38ebNN359XbuanXZa+nnHHFN52u9+V3V+++3nw6OOqn6fuucef9+nT+Jz9u/v/+PxgP6UU/wYE98He/c222GHyvltv70fa5Kn7bNP4v2++ya27X/+478r8f2nX7/0ZTzgALN//7vy9Asu8O8dKm+71P+VX/+64nirVpXzGzTI96X4tojvWzvskDjugf/m3X23H08++aT6fey++3y/TL5QNmOG7zfp0o8f7wE8mL32WmJ7xvcvSByfXnstMa1TJ7N//csvfIDZNtv48KyzzM45J5GuTRv/benVy8dfecWXufpqP2Fu187zz883u/hiT3PEET783/8S+TRtavaLX/h3Cn5hMp4n+Gc46CB/f8MNiekTJvgFuZNPrvwbEf8tadnSA/L27X28WTMf3n67b58//ckvPg0davbii2bduvn8nXf2/1cw23NPH155ZebvZo89zD780C92PvusnyvsuWdiff/4R2L/6trV04JfFAAPGs48098fe6xvu3je48b5BYFjj/V06S5C/uc/Zj/7WWI8vt7qXk8/7fvPs8+a3XmnT+vZ0/fTt9/28REjKi7zwAN+QWK77Xy7f/21T99/f7PHH7eBnTubApWf0Au4MwpErsww//5o/m9rkNeYDK91O3RuZHfddZclSw1Uvr9tQNWBytnB7PMLzO72nbnsPmz18DvNHqgmUEmWOj8eqCxZ4uOtW1e8klUTqVdua5J+9eqNW0dVCgsrXkVbvdqvsiRfTRw3zk+44r75xn/wVq70K+Hl5X6V6JhjPL+yMr+6tWyZpzvjDL/S/u67/oP25pueT/xKU3FxxatOixdXvGqdegU72VNPJa7OxN1wQ2K5uA8+yHw1Zc4cv9pp5oHmsmW+HeLbIDnoi6cz8++9tLTitrr22oqfJb5tM607FkvU2Jn5euNXtUtK/CrX+vWJ9ZSWepBZXOyv8vLKV/TKyvwEoLTUyxu/UlpamrgCW1LiV+umTfN8CgsTV6rj6eNX4c38x7e42Oyjj/zq/qpVla/iX3ut5/fUU34V/Z13ErULDzxg9uc/J672vvWWf445c/z97bd7TcyMGYlaz/JyP4G7+mr/UZ482fehQYO8tu7BB/1k46yzfBuC1/SMGuXzPvzQ7Fe/8mnxk5VrrvETzwMO8BP6m2/2k7yddvL5bduanX66VfhhGzq04gn6Kaf4cNq0xAkIeLASf3/qqV7LBB5Q779/xTz/+MfE+xNOMPv737y245BD/KQhPi/diV/8QkDzZmZ5mDWmchowyycRzMfL0qZN4qLE9ddXDK5TA23wmsrzzvP3qQHuIYckakkH4mWJb8N4mp6YbRUFdPfdl76cYHb++f7dJE+rKsiDRE1jcsCY/LrtNh+GpGnHHecnnvEa1I15pQtEU8vbJHpfUIP84vtU6klZftL3VdWrfZr1Z0qbesHl6KN9ePYpie1T023StauXMXXbJr9uuSXxPlOa+nxtiVnLpPHePc222sg82mDWCLMtUr6bvI3II/lCGJgdkSFdi2ryaZlhej5mrQt8G8e/kwOjYXMS+2FVZW7TxmyXXfx9usA1vp6QoRz5+Umfl8zHI6J5jeLfCWYn9vW822ZIHzBr0cKP1S2Tls30iu9r+dFrn6R5zaJXNd/ZQLC6ClSCmdV5czLZOCGEfwEXABeY2SNp5t8KXAtca2a3VZNXpgd59OvfuaD5GZf8kWuvvXbDxOk3b0OfvtM3jE+bM4Btuk9MLPWLpP3jqag7UV5jmP8nuPL3xO6D9b3/QItZd8CFUfvbm25KPO09fSF9V44rj8GwgsS6CguhefOqPmbN8q2td/aBQz+p/fJWDiEPVk+F5ltBQQufHlsP5fmJvjorJ8G3f4W9/5tYtrwUQj4Q/POUroH1i6DVNjD3FehyOOQ3qV25YsW1X3ZTLPsKOtTi2Tb1rXQt5DeDvDR3v0tmBph/p6nT099tvWqxElj6GWx5QPp1la0Bi/n31TTqH2RlkNfI94dGrTLnXV7q6cygZAUsmA+dO0GTjj4vv3EibfFyaNIeSldDo9bRutcmPmdoBOsXQOMOsHICdNwLipfBghHQ8zQoWwdlpVDQCFZPgaadYcJNsP010KqP57F2Bqz8AZ5/CH75Z9+PJ/0VGreFbX8LC96BzgfD7GdhzTSY0QOOOhU+fAo69vG7Ay56H7Y8Hr67CfpdDvnNYdX3sHgKdOzuy909HK4+CyZcDsfNglFHwu7/g2+fgn6HQ0ErWFoCS9+C7rvAGw/B8TfBy8NgwFKY8TC07AP7jIS1X8PsadBqMTTtC6OHwJEToVVfKFkKxSugzfawcAQs+RSadIBGbaDr8bBmEqybD7P+DW12gbI9YN230HgSFM6FxaOgyxGw9Xkw9XZoOwD6XgLTH/Hve8Zj0OksmDEczhgPYy6DDgNhyt0wcCisGAdb7A0j/warj4YT94Qtd4fProK/TIN7/g/adIXvX4Sib6DdtTDzTFh5DvTeDXrtCo0nQ+ESmP4POOB1z7PRrrDqFWjeAz5+HToF6HwiFM2GnU6D7/8B466CvOOA4dB2J9jpMWi6Hr6+BdbsApPfgD26wHtfw3G/gu9vgJ+NhM4HwkcnwvJx0LIXDHoaxr0DLT727TbvVfihP2w50vfFTgfA8jHQ+TSY+wgc9wNMuMW3XedDYdIyaPIMHPoFfPoLGHwvLHgfuh0Fn90OK8fCQQ/Ax0Og9wXQ9hRoPB/G3gl7DoWiQhhzKhTcArvvCh//3L+7+S/DLnfDnJdgj3/C7Gd8/11fCLEi2Pdx/3//15NwyWXw9pFQatD8Z7Do99BhD99HVn/n/29bnwwr1sEWh8HYx2Dqaui6DH5+IaxsBZ2bw/vHQNNzoPxtKNwCeu7ufTf/cy8c0Bja7QQrvvGbsvRoDoPvh6VLYOrLkPex7wtLP4XSHtBjICx4GaZtC+t3gHP/D765BPpe7rcoWt4FPvorDJ4IPc6G+a9Aux1h9+fg69tg7njo2gy63ABj94ZmfaFoqv8fdzkcul0HYw+DWCH0+hXM/Bf8B7jmYZh1J7TpC8v2hDmvwTG7wYJ3oWgOxNbB9jfA5Fug1X5Q/itYdxZgUNIdmi2DrofDDtfC8MFw4HCYPAYWXQf9rvTjZV4LWLIQ1r0Jg/8NnxwN7Q+CVl38OFc0D1aO97JusS+06AmLTwT+Ctv8Apr3hdHRDXDa9IfiDtA6QPdzYPwfoeuesHYmND8Q5t7hx9DyUrgPuCQ6Xva+EGb8A8qPhdUzoO1E/622GCz6GezeFYqXwLLvYZer4csLE8favCaw3W0w+QrofgrMeRba7AHzpkDbrvBhOew1FULUb7OgLZSthLlHQ5/VULoeOh8On/4FOuwAraLP2uMUaNYFptzj+RbOh9a/gTk3Q5v/gwUvwu6/gXHXQa+LoMOWMOVlaFoE3a+FcUd5Pm0Hw6pxsP9rsPhzmPwnaNwDShb69s8HmvSENUXQcQto2Rvang7v/AL2uwcWjYbyQui2DXT7JZQvY9B+xzN25tKxZjYo8w9WzShQyQJ1GahUsY4x23Zg4InnX8N3333Hyy+/DMD0m/vQp++MDemmzR7ANj2qCVQKWmJzf0+48npi90F+eyC/I5y6uKaFqfgQyfIYPFUAZ2bYF9/cBbocArveWXW+330H/TLdvmwjPBUqfu5MzDz4+OBo2OoY/5FaNQm+/n9wyMfw/mF+MnfiYiheCu/s6cudtAyGNYJ9n/cf0/aDoNc5MCY6IuY39eBm24tg4p98WudD/MQobsCN0Gl/P7la/CHMfg4Kmvlwy4NhzRRotyv0OR867AY/DIMJf4Rjp/sJU6wYfnga2g/0g06jNlBeAq23h3f3gz4XQOlKL3/7wf5DtWoiFM2HyXfCXk/Cko+goCV02g8+PRO2Ph2mPuDlymvkJxz5TeDdA+DoqdC0k+dZvByWfOIB2LqZsPeTvi0Xj/ITlbY7w7zXoNvxMO5qGDQUhu8G/a+BVd9Cn/NgycfQcV8/0V0+Bvr80k+WV3/nPx7b/gZm/hda94O2O/qP09grvVzb/Aq+utjz2OcZWD0ZCucB5ieM214IC9/1z9b/GvjkVN/mzbaCxu18e854LPFdbHkw9D7Hv/c+58O8N6DHSZDfAsZdCT97Gz44FgZcHwUfHX39LbeBHW/0cu1wLXxzowcpmfS7Ar77m7/vsId/N6sm+vdXuioKTqK7uYUCD25SZZouAn7cKVvX0KWQVC23gbXTGroUrv0gP+Zmm6adYf3C6tPVhYJWVR+rkzXrAkXRfaRa9ITC2X4x8ydu0HUwdhbZEaiEEGZUn6rWzMz61GP+WSGEcCdwFXCVmd2dZv79wEXAhWb2YOr8Gq5jzLYdGPh99AD2+Pe+oUZlJdA2TaBywgJo1tnfxwOVxu0pn3MZeVfcSOxeyO+A/zMeO7NmV+xDgNd3gDY7wL7P+JWLpxpnDlSeCtBiazjsS5j+sJ/U1aenApxa5Ce8k++E3ucltsGkv/j6Pz7FT4rzm8Oyau620ekAvzI++1kf73o0zH+9fj+DbB4atYGuR8EPT23ccu0Hw/KvKk5r0sHzmvkfH2+7s+93y79KBDDdjvMgsXE7WPN9xeV3vs0D1/xmHhB++Rvf92f8G7qdAHNf8nTNu3mwC3Dgm157sff/YM6LMCe6g17L3h7stuwFs57yYattPUDbYi8PFtvu6MHZ+sWwy20w52XoexGMvcJPhIqjO88d8AbkFXjgP/DvMPdFD84H3OR5LR4Fvc6GRi39/3P1d37SsmYqrPgadroFug/xgHOPh327LBzh26l1P/huKGx1LPQ609cBcMTXXnPcpAN8eLzXgO3+L/+Mg/4Oi0bC0tH+mVr3he4n+bqLl3lA+fU1Hsgf+JbXgL2zl5d169Oh6xHw7e3+3ayZ5p955Tdenv6/97Q9TvaLDqcWwde/h+0uhVlPQ3mxB9MDboQvf+sXSPqc78ffH4Z50DzzCT/WFLSCPR6B5V9C6/4w+jyvvWm7I8x+3i8AFM7z4++MR2GfYX6hYP5w+OY6P6k64FUYeQj8/CNfb88z4Pm2cMinvv/0PgtGHeXbZsU4+OAY6LAnbH8FFC2KLgpc5MH/7Gd9G5SX+vc38C748AS/+NGip/8WLHrf0xS08P2iaD4MHwSnlcDKiTDxj76tZ/3Py9u4LXx1KQy6Byb+Gbqf4OVoNxDejB7o2+cC35e6HuE1Mks/h27Hwuv9oHAO/PxDv2iz693+nX9yKgz8W+IEc+0MaDPAawubbukXGsrLPG2PIX6hYY9H/LtvtiVMe9gv+Kxf6P9P0x+DSX/2zzVwqO/zsULY91kgz/8Xl3zsF4ra7gjfPwTT/+UXd55v67+TezwCk27zCy0FLb02culn/nu79S9g8h2w4x/9/6RklQc1LXvD5Lt9vVsd5RcyJt0KWx3t23/bC/0izefnwUHveq0q+AWtXmfC/LdgzKVw5DdeyzThJi9Hr3PgzR3goJEw9X7Y5S9+kWjav2CX2337t93Za2/LY17jM+81/y3td6X/TzZqCfs8m6jhjZXAulnQuD28vZv/T2zza98P1s3yfGLroM2OfixrsoUfa1r09FYL0x7xbR3/fype6sexpZ95UGBl/rkXjPDf6+mPwr7PwRa7e8368+382ND1KP9+Z7/g+RUt9G3aahtYNRna7eL75Tc3wl5PwKu9/bj56ekwZIVfiPp4iH+3c1+Gnmf6//9Twfdhi8G6OZ7f6in+mea+6rVB+72UOBbHL+Ka+bGq7Y7QqC0seMu3+YFvel4Tb/H/txbdvTaq55kw60kYdK9/7h4n+bF01tPQ+1w/FnxzA5xe7t99fvPEuc2oIz0I3fFm3y/XL/Jj/ciDYYfrfJs27+4XJuM+PQt2vd0v0LYfDOtmw8iDoPd5DDpvOGO/npA1gUo5pH2e+abyp3OYVdMuY/MXQjgfeBj4l5n9Os38t4FDgZ+b2Xu1XEfVgcpyoH2aQAXgoBH+g/xKTx9v1JbYwvPIv/RvxO6B/C3wq82lq+CUGlxlOPJIOHuUV6f/wvwg9VxL/0de9AEs/sD/MRa8DVvsCS9Ej5A5egq8f7jXCnx3t9c4FDSrnP+iUTD/Ta8F6HyQT/v2dr86XhNPBdj/Vf8BeXc/Pzj3+aWfOHx8Cgx+wH98M2nczqujkzXp4D9kqYas9B+tl7r6eI9T/AD97W0+7DHEp6+dAe/sDYd+7ge4tdP84N//D/Degd48omi+N93Ib+pBVl5j/2Fb+K7XLjTt6EHTD08nrvw3aQ8DbogO4F/AjjfAt3f4ukefDwOug7d2hdNK/eSmy6H+wzP/Ldj5zzD1H9BuZ5hwMxw80g/m467yWoRVk2D5WN925cV+ECucAx338YPeB8d4rcj3D/qP7ISb/URo7kt+VbfL4d7EZPIdvg26HuXf4bLRUdOK0/zzrf4Oygr9B+7Y6LpJ0UL/MSwvhdbbwcRbvYlR+8Gwdrpvk20v9IP9tH9GeTXxH8C8fG9itXamH6iXfOIntK23jfav972sP//Aa9Tym8KK8b4/t9/Nm06VrvK810z3H7zYep++4B3ofrwPO+6TaBZo5kF4nwt8W+U18e+5ZS/PJ+R7nnlNou+1sddOFbT0k5VFHySakpWs9O3cZkCiOWS6JmrlZZ43AUbsDYd/VTlNsrWzoGXPqtPEP0umJnFlRen/Z9PlMfcVD6zieZWs9MAuhETzyrpklmg6l1z+NdP9JK5xOz9pqY0R+8HOf6n4I5/J043g9NLM88sKvWYMKjblq5CmyMual3RL+NLVvt/kN62+DFV9h1/8BnZ7MP38WEnmMtV2fbVtYlle6ifF7QZG/1ONK35/Vu7/h10Pr3kZYePLMvdVP4k/sIYXp0rX+snuz4b7+PrF3vxy+Vd+gaBHDR5yXBeq+ry1+U4+OA52f8gDwGxTXZPaTCx6PkNqs9pUL3WFE+ann1ce8yC1JsfFqkx/NPqtjVXdnDne5Le+lK6G/GYM2m1Pxo4dm1WBSn3JlUClDzANmAX0MUvUC4YQWuHPnwlAJzOrVb18cqDSsmVLVq9eTQiBaTf3YZu+M2ApsAVMnz2APqmBSveTYOtT/SQ92RkQ+7u3+qJ5dz85ytRkqjzmJxYhcO4r5/LYusd9+i+i5lPPtfGmSstG+w/pkBUwYn9YNyNxgn/UZI/uG7XxqwHx5SFx4PzhWf9R+voPUTv5ALs/DK/3rVi28rLMJx1PBb8iMe5KPwAB7P+yX9lc/V3VG3rf5zy4KCuEZ1t4APHK1on5h4/xk4wVYz2g2ivaDpP+Av2uShzsUk/EStf4FamdoqZgU//h/QZ2r1UFW82Z+RXuQUOrT1ebkwmAUcf49k0+uK6e6leqAb65CXaqos9TXZRhY8SKfZ9s3rX+1yU/DeOvg15nedBcndqeNEl2WjPNa996ndHQJZGGUl3w8BM0aNCgOgtUNvmSlJnl1eMrJ75ZM5sOvIM/Yyb1Uv0fgRbAf2sbpKRau3YteXl5TJ48mQ3P29yiigVCfvo2lWdGQQpUf3Xzq4u8KhR4/OvHK84zwwiJJlQh36v5y1ZXrEaZh/EAACAASURBVIWIFXmtQTxIiStaAE9H6//kVPjsLA9CVk3y2pnXoxPesnV+EgDw8lY+HH2+X30ED1BejVoajrk0EaSAN/9IDVL6/95rJuLa7uhXXQEKmsMuf/UmKFse7Ccoh33pV9fb7eQnLbv/M7HsDtdWvCKTuj0btUoEKQBdj/RmFfUthOqDlHi62jrwtcoH8XiQAjULUja1DBsjv4mCFNk4O99asyAFFKT81LTaRkFKrsuxIKWu1fuT6aXGLgQWA/eGEF4OIdwWQhgJXA5MBa7b1BUU5PvXfdlllwHQv39/lq+o2ETJyivXiHw2+gumT5taOcMjEm9XrfanLhcXFzNv3jxOP/10lixZQiwWY9q0acTWL6ekaDVTpkxhv6SWB0uXLmX2hDcojRX7hLxGHlCMPs+bviT5avSHlYqwfv167J29K5ctFFRuajXlPm+ju36JV6eXFXp16bPNE0211tawy1Wvs71dfddoI+z5GDTpRIVWkP2v8eDj4Hfh6O8q3vkq5G3aHbha9oT2u9Z+eREREZEsp0AlS0S1KoOBx4E9gCvxJ9bfA+xpZmk6OGzkOqLh3XffzQknnADA8uXLK6RZumxppeWmT5/FfffdU2Xeiwu9eE2bNqVbt24MGzaMTp06UVBQwLbbbstzzz3H+RdcQL9+/fiwe2K5jh070mPyyTSOXwyP12KsnFBpHddec1mlaR3bNSOsmwVA3y6JK+pTv59eKe3/+/0fvK/Ki518wrMtNsy78ZzKdwtLE7MB8Prq8zn93mKuuuoqPv74Y1a3PoibnpjJ7LnzmDljOk8//TRvv/027733Htdeey1fffUVc+fOZc6cOdxzzz2sW7eO1atXc9ddd/HDDz/w6KOPMmvWLMaPH8+aNWuYNcs/j5kxYcIESkpKvDzl5SxcuJCysjKWL1/OunWJCraSkhJGjBhBaWkp5eUVa79KSko29Elat24d5eXlG8bjw+Li4g3vY7HYhmVTm4YuXryY4mIPKsvKyli6tOL+krru5PXE812yZAlLliyptO+lSl73+vXrq0xbnaKiok1aPpO6uGviT/3Oi2PHjm3oIoiIyGZKtyfOESGEMdt3yhs4ebGfpJaWltK4cWOm3NiLvtvN3JBu5EetOGi/ih3iJ67blR0OupQw+tyM+U8vK6BPQRllp5Ryxxt3cHSvo+nbty+NGzf2E9RPTqOs81E03fZMwjNJNQmnlfkzVGqgrHFXCkoqdkiLNe9NfmHNakG+LD2J3Rq9kHbe91vcwLZLb6kwraS8MY3zSipMu+Xtbjz5eXMefPBBJk2aRP6C1/n/7N13fFPl/gfwz5PuQktLSxkFyl4KIrJkC17HBUFwgVtxwVWu66de9WIRBUQviuIWBBUFAZEhW7ZMUVYLBUoLbWnpbtORpkm+vz9Ocpq06WCIhXzer1ebnHOe5+Q5yclJvnlWc8uveHJ+Q6x/1QtrEzvi3fmHcP/99+PQoUNYs0brENmuXTscO1ZWKzV48GBs3LixyvLWqVPHJRhxJyoqCgaDAQkJCRW2DRw4ECUlJdi1a1eV+2jUqBHS0sqGdVRKVfjy3KBBA2RkZLjN365dO4SGhmL3bq3pXr9+/RAfH4+srCw9yKpKx44d7c0QK+rSpQtyc3Nx+vRpdO3aFfv37wcA1K9fH9nZ2ahbty4KCgpw4403okmTJvjmm28QFhaGrKwst89fvXr1EBUVhdLSUvTo0QPffKONkNW/f39s374dIoIePXogJSUFTZo0we+//46WLVvCz88PR48exTPPPIOAgABMnz4dPXr0wN69e/V9Dx06FK1bt0ZycjJWr16tB0cvvfQSpk/XBgSIjIxE586dccMNNyAnJwc7duzA1q1bMWvWLJhMJrz44ov66+Ht7Y3vvvsOo0ePxtixY3HixAkMHjwYx44dQ6tWrWCz2ZCUlIQOHTpgz549+pDjEydOREFBAdauXQubzYbRo0cjJCQEsbGxsFqtqF+/Ptq0aYM5c+YgPj4eI0aMQIMGDRAcHIzFixcjMjISJpMJjzzyCLy8vLBs2TK0bt0aAwcOxJEjRxAeHo7Dhw+jX79+mDRpEsaMGYOmTZsiPz8fs2fPRp8+fdC3b1+8/vrrOHjwIADgjjvuwOjRowEAvr6+2LVrF9atW4fHHnsM4eHhWL58OQYNGoRu3bohLCwMy5YtQ2BgIAYPHozx48dj+PDhMBqNGDBgAJRSOHToEI4fP478/HxEREQgNjYWI0aMwG233Ybs7GysXr0at9xyC5KSkhAZGQlvb2+EhYXh119/hcFgQPPmzbFu3Tq0aNECgwcPxr59+9C+fXsUFxejbt268PPzg4+PD+Lj45GYmIh+/fohNjYWXbt2RXx8PCIjI/HDDz8gJCQEgwYNwowZMzB+/HiYTCaYzWYcOnQIAwYMgL+/P86ePYs2bdpg1apVuOmmm5CVlYWCggLk5eWhefPmWLZsGcaOHQulFE6ePAkRgc1m07d17NgRdevWRUlJCUJDQ2GxWLBnzx7cfPPNCAoKQnFxMdLS0pCRkYE2bdpAKYXdu3fjxhtvRFpaGqKionDixAkcPnwYYWFhaNeuHaKiolBUVAQA+jErpXDgwAHYbDYcPHgQDz74IHJzc3Hw4EEUFBSgcePG8PPzw/Tp0zF58mSEh4cjNDQUaWlpaNy4MbZu3YoBAwbg4MGDaNu2LQICAvQfGE6dOoV27dohJiYGjRo1go+PD0QE/v7+KCwshMlkgpeXF0JDQ6GUgo+PD7Kzs7Fhwwb07t0bPva5pwoLCzFv3jzcd999aNCgAUJCQvRJ4Xx9fZGbm4u6devC29sbRUVF8PLywpkz2mdG8+bNUVRUBKUU/Pz8YLVa4e3tDZPJhNLSUtSrVw8Gg0G//lmtVmRlZSEiIgIxMTFo1qwZgoODYTKZYDAYUFRUBBFB/fr1kZiYiIiICJjNZvj7+yMvLw8NGjSAUgrK3iQ1KysLYWHawDDZ2dkIDg6Gt7f22ec4BoPBAIvFAqUU1q1bh+7du6NevXr6c2KxWODlpTUjio2NxVVXXQUAMBqNCAwM1I8J0H7c8fHx0X88MhgMEBF4e3vrZXIcq/NjFxYWIicnByaTCSEhIfDz89OvncePH0fTpk0BAKmpqWjatCn8/f0hIsjMzIS3tzdCQ0NRUlICX19f/dgMBoP+I1pJSQkSEhJwzTXXQERgNpvh5+cHm82Gn376CXfeeSesVivMZjOKi4v1c8JZXl4eCgsLERYWhqKiIiQkJOjnnOO6GxRU1oTSYrGgtLQUAQEBMBqNUEohMzMTUVFRMBqNCA4O1tOmp6cjLCwMeXl58PHx0d8bxcXF8PPzQ3x8PNq0aQOLxQJvb2/88ccf6NixI44dO4YmTZro54Hju4/B4Fof4MhnMpmwatUqDB8+HAUFBUhLS0Pz5s3119rx2ekon7+/P/Lz82E0GmEwGBAXF4frr78eRqMRpaWlOH36NNq0aYPQ0FCsWrUK3bp1g8ViQUpKCnr37g0vLy9kZmbC19cXmZmZaNGiBU6ePIk2bdq4/DiZn5+PkJAQ/bWLiYlB586dYbVacebMGTRp0gQGgwG//PILevfu7XIeO84pi8WC3r1rUWd6ujwopfZ1iDB0O5puc/kSenxSG7RtW1b7MGs98PQ/ymWu310bIWn3o5Xu/7jFG229LcC9AjVJQd4od15tv0cbdUVsrkOxjjYDC85jlJi/yl15QMpKYIdTm+LI24D2z2od+csPFpC8TGs+NnA5sOlWbRjRJreipkTE5SLsuIg51js+ML28vPT7aWlpaNasGfLz8/ULrOM1VUrp6R23jg+qkpISeHt76x9ejv0rpRAXF4f27dvrHxqOfRcVFSE7OxsNGzZEQUEBlFL6F5Pg4GCkpaWhYcOGUEqhsLAQdevWhYhg//79uPrqq2GxWGA2m/ULnGPZ19dXv9h26NABZrMZWVlZiImJQadOnXDs2DFYrVZ07doVJpMJ9evXR3h4OHJyclBQUICSkhIEBwcjOjoaTz/9NLKzsxEREYHi4mL8+uuv6Ny5M0JCQrBu3Tr069cPqamp8Pb2xpAhQ2A0GvHJJ5/gqaeewm+//YZOnTohJSUFZ86cwaFDh9C3b1906tQJJpMJ8fHxuPbaaxEbG4uIiAhkZGQgPT0d11xzDUwmE7Zs2YLjx4+jU6dO6Nu3L1asWIHMzEzceOONePTRRzFu3Dg0adIEAQEBaNCgAWJiYhAWFoY33ngDI0aMwOjRo3Ho0CFs27YNPXv2xIABA7Bz507k5OSgffv22LhxI4YMGQKr1YrOnTvj1KlTOHHiBAoLC1GvXj0cOXIEV111FZYuXYpbbrkFXbp0wWuvvYYTJ07gmWeewUcffYT7778f/fr107+IPP300xg1ahTS0tKwfft2TJ8+HV5eXli4cCEiIyMxZswY3H333bjjjjuwZMkStGnTBkFBQQgPD9c/kHJychAUFIRhw4bh3//+N4YNG4aVK1fi9ttvh7+/PxYsWIDRo0djwYIF+rk9cuRILF2qDcHZoUMH/QsLANx6661Ys2YNRASNGjXCO++8g4ceekjPO2jQIBw9ehTNmzfHkSNHYDQaER4ejrZt2yI/Px8xEgPEAUGBQSgqKoLVakXTpk3xzDPP4OWXy0b7e+qpp7B8+XI0bdoUISEh2LZtm0ttm4+Pj/4jjtlshre3NyyW6ued8fPzQ0lJSYUfJBo2bIg6derg5Entx5T27dvjlltuwZYtW7B//3507twZhw6V1R47HhcAevfujZiYGBiNFUdSdPdjQkBgAIqLXGsOmzdvDpvNBm9vbwQGBiI2NtalzH369MGmTZuqPLZmzZohKSmp0u0GgwF16tSB0WhEw4YNcfbs2UrL6KxJkyZ6EFFjCsA1APa7rg4PD69Qu9umTRucOHHC5Rgc18XqVJXOcY44p61Tpw7y8/Nd0jl+WHGkd+zT+bjL/9gRGhqKnHLNsWur5s2b4/Tp04iMjERKSkqF7ddccw0OHNAmJgwKCqpwHl977bXIzMys8tw6V6NGjcKBAwcQH1/2naZVq1b6+6865cvZtFVTRDWOwm+/nfsE0AaDwaWFgfN507p1a72MzudpeY7zo2nTpkhOTq6w3fnHu6qEh4ejWbNm+PPPPytsc3euh4eHw2g0aq0nOgM4BLRo0UK/hjgHhNW4KIHKBU9tz7/L4w/Avo4RBhk0aJA4O/ZGK5H50P+2rrndZVn/O/GV+/X2v6NzvbX7Npt4RaPsAWw2kaJUkV86i/x2n8imoS75ik05Ve63pn+2H+tVvn3zcLfrzUdnua5bElFW7n3Pa+viPi5btzhcKji7VWTPeLFYLVJ8fI5I/gl9k8VqqZD8gZ8eqLgPESmxlOj3xyweIzabTUREkvKSxFRqkg3xG2RL4hY9zad7P5V5++e57OPW726VPFNehX3/ePhH/X5uca7bx3dXVkcZnEVvipb47Hi3+xAROZ51XL9vKjWJzWaTfFO+S5o9yXtkT/KeSvchIhXyODg/T+diUcwit3nTC9LdHrtDTnGO2+fBmanUpN+32WznXMYz+Wdclq02q8tydY9fG9lsNr3clb2WVR2X1WYVY4mx2sdwCJkWIllFWTVO7xC9KVrMFnOV+apS1WOWWEqk1FoqpdZSt9vLv84iIgsPLxRjiVEKCwtFxP37UkSkyFwkImXH9M72d2TcynGyMm6liIj8ceYPKS4tdsmTU5wjk7dMdru/5ORksVgsYjabZem+pWI2m2X1sdWyK3GX/jjlnz+rtaz8h88eltvm36YvO9JbLBbJzs52yVdSUqLvq7S0VGw2m5jNZjEajfqyY//Oj5mYmCgZeRlS5+06bo+hfPlMJpOUlpY997m52rUv35ivb3c8RkJCgpSWlkpycrKsX79e35/FYnHZb15enqSlpcnWrVvFZrOJyWQSZ45jM5vNYrPZpKioSCwWixw8eFDbn9PrmZubKzabTXJyciQ3N1fOnj0rIiIZWRky/4/5+mPn5ubKlDVTxGazSUZGhv64NptNiouLXcpnNpv1MjnSOF4nm80mp9JPSUZGhhQWFkpJSYn+nDj2YTQapbi4WCwWi17G9PT0Cs9zUZF2/m1L3CZ5pjw5fPawpOSkSGZmpstzZrVaxWQySVpamhiNRpn/+3x5aPFD+vap26ZKaWmpWK1WycvLk6NHj0pCQoL++CUlJVJYWChfffWV2Gw2yczMlLS0tArnY35+vl4mR77Ze2fL1sNbxWQySVFRkcTExOhlysrKEpvNJkajUWw2m8ydO1eSk5P113zXrl1itVql6YymkmZMcymTiEhKSorL+W+1WcVisYjVapXdu3fr6zdv3iylpaV63uJi7T1psVgkKTlJFsUskuyibLFYLC7naklJxc8QR5kdx+BOfn6+di4Zz7q9vjjSiIhkZmbqx+/M8X51nJuwf58zlZrkdO5pPV1eXp5kZmZqr0t+pv5eOnPmjCQnJ0u3bt0EwD65CN9f2UfFw7j8eiaC4Kwazq4qVf8KJY4eMKlr8XVDaKNkAdpoXEsbA7mHYFNeriNpASgscf0VqlpegdpkReXYes+tPI/zuO1dp+t3n/ztM+1Otw+0W+d9dPufNuFWu/Fl60Zqs8umFaTBarM/HxH9ge6z8NGej9Bz/fuYc2ILAKDRe43gPdkbn+z9BMezjsMmNmw7tQ3fHvwW+SX5EBHsSNqBefvnIXpzNPze8sPPR39GnikPy+KWocBcgCMZR9Ds/Wbwf9sfT69+GgPnDsS9S+7Fy+tfRnx2PI5lHcOdP97pCESx+sRq1JtWDyviVsBYYoSIIC4zDncvvhupxlT8Z8N/EPJOCP5v3f8hqygLIoLlccsBAP2/7g81SSHVqB3jpoRNiHgvAnmmPHyw6wP9KYjeEo1Hl2k1azaxwWYfDe5E9gm8sekNtP2oLZ5b8xwmbpoI/7f9se30NrSc2RIAMP/gfDy/9nmsOr4Ki2MX6+UGgFc2vOLykoW/G67vW0RQYilBVlEW3v3tXRSXFjsH4Cgq1ZpgZBVlocBcAJvY8OyaZzFu5TgsO7oMDy59EON+GYflccsxafMkbD21FRabBVabFf2/7o8X172IjMIMLIpZBIvNggWHtVoAY4kRzd9vjgJzgf56W21WmK1m3PnjnXpZG77XED/G/IhP936Kt7e9jbsX3Y3i0rJfmxzlLLWW4rPfP3M5zsPph9FkhusIYo8sewQbEzaiqFRrmtP2o7b6ttN5p1FeqjEVsRmxuHuRNnx4oblQf33e3vq2ns5YYoTFptUObDu1DWqSwg+HfgAATNs+DQCwP20/1CSFzYmbsT9tP1799VX86xdtIMLjWcexLn4dhn0/DFabFb2+6oUX1r4AAMgo1JoFTt4yGfHZ8bhl/i3oO6cvGr3XCMHTgrE4djHyS/Jhspjw9Z9f4/2d76PNR23w+e+fw2KzwGTRmgj1md0HJosJzd5vhqCpQRARFJcWY0viFuxP24+TOSf159TwpvbxNfyH4TAog36+OLafyD6BvnP6Qk3SaizPFp5FemE6AGDe/nlYH78e0Vui9ee51FoKs9WMU7mn0PWzrhDRaodn7JyB9fHroSYplFhKYLKYsDh2MWbsnIGw6WHYlbwLyfnJGP/LeKQXpuOHQz/gmwPfoPsX3TFu5ThM2z4NX/3xFQCg55c9kVagNbNs/WFrxGXG6deDX479gnsW34OgqUG4ZvY1AIAWM1tgf9p+LIkta7Kaa8pF4JRADPt+GJ5Y8QTyTHl4ecPL+PT3T5FXkgcAuO+n+3A86zgeW/4YdiTtwD/n/xMD5w7Efzf9FwXmAmw4uQEbTm5AgVkbBCUyMhIZxRnYdHoTRq4YiWJbMVYcW4HvYr4DABRbirH+5HqsOr5KL8fQH4YCAP71y7+w4PACnMo/BRHB/IPzMf/QfLyy4RVsS9qmNQ8rSMPETRMhojXRctQiLz66GEopLDq6CIF1AhGTGYNcUy4yizJxpuCMy2saFRUFszKjrm9dfLHvC3T/omxwkgKzVtv7/s73se3UNmxK2IRJ2yfBCivm/DkHAPBtnHbt7f9df2QWZeLar65FQm4CrGJFixYtAINWy+PX1g/bTm2D2WqGl5cXZu6eibe3vo2MwgwEBQWhYcOG6NevH6765CrAC/q5C0A/Nh8fHyilEBAQACigSesmSMpPQtQHUbCJDV/s+wK5kosZO2cgtTQVvoG+SLIkYWPCRmRLNu5bfh+gtFqpHek78OquVyEQ+AX5wfCmAb+e/hW5plz4+/tDKYWv/vgKq4+vRkphCprMbIK7F90NM8x60zPH5037L9ojPDwcgYGB8PX1hcnLhJT8FPyR+gembpuKgMAAHMs7pjcvCw4ORoMGDfT3oeNcCAjQ5vwYv2o89qftx9WfXo3ImZHYmr4V606ug0Awbfs0dPmsC1KKUtCwYUPUrVsX9628Dz8d+wkLDi+A2WrGm1veRPevusNgMCA4OBjt27dHixYt4OXlhS/2fYFEYyICAwMx6t5RyCvJQ1hYGA4XHoZSCjfMuwHGEiNyirXa3YCAAIgICswF8PX1xYr4FcgwZMDPzw8BAQHo1KkTAK2mY17cPADAvsx9AICHHnoIkZGRsIkNBoMBvXr10ptsmSwmvUzphenaNTQIyDHloMRSgsPph9FyZkutBgU2/OtA2cCts9JnwdvbW2vZIDb4+NrnNVKAIdiAuxbdhfrT66PDJx3057zUWorVJ1dDRHDfT/fhVO4pfLnvS+zP24/mHzTHwbMH9e9bvxz7RX8sm9gQWCcQ/nX80f3L7tifth8PLH0A+9P249k1z2JXstYE3D/QH29segO/Zf6GX5N/1denGlNRaC5EaKg2cumi2EV474/39P3vTtmNMUvG6MvBwcGYum8qAKDRB41QUFqAtAKttUVYwzBkFV9wt2odm355CKXUvo4NDd1i05wCjtJS4HZfwKmV07aw29E/6+eKO+jxqTYTciXiSr3Q3scK9F+KZatHYkRdaM2kvq96yNjsoQmo/0vLGh+HtB0H1eMTl/0W2oCfG9yP+7K+c5vH2HYCgo5/qC30ngfs0pqU9M2/Cr8FxwBDNgG/3qAFQEph7LKxmD1iNnKKc5BakIpQ/1A0DmqMP1P/RIBPAO5adBc+H/Y5ekX2wpRtU/Cvnv9C2HSt7XGDwAYYEDUAS46UfbH4fNjnKLWW4unVT9f4OMdeOxYnsk9gy6ktlaZpHdoa8Tnx8DZ4619AK1P+i1xVMv4vAw3ebeCybuGdC3HP4nsAAB3DO2JE+xGY9pv25dY60QqvNysffjHEPwS7xu5Ch48rDlgwZ/gcvLn1TSTmJuLRro9i75m9OJSuNYW5o+MduDrianxz4Bsk5CbgusbX4VD6IZitZjSv1xyn804j1D8UOSbXphITek7Ah3u017tvs774Lcm12r5Psz74d69/IzwwHHctugs5xTn6hf/DWz7EhDUTcHjcYVz9qTaz9UPXPIR5B+bh4a4PY+7+uQjyDYLRbETSc0loEtTE5dhbhbbSv0wXv1aMG+bdgF3Ju5D6Qio+2v0RpmyfgpYhLdEurB1O5Z1CXGYcBALbRBuyi7Pxyd5PsCBmAZ7t9SyeWPkEXu33KqZsn4K5I+aiVWgrDJg7ADe1vglNg5piV8ouZBVl4WzhWdzc+masjV+LBoENkFGUgWC/YOTbfwRIfi4ZVrEi6oMoPNvrWdxz9T24fvb1FV6LmbfMxFtb30JGUcW+SFH1onAq75S+PHHARLy59U20D2uPuCxtdL4BUQOw9VTFkflqavNDmzFo3iCXdesfWI//bvqv/mEKQH9OAGD56OUYvmA4vA3eOPb0MaQXpuOD3R9g9fHVmNBrAiZv1fqdrb1/LW7+7mb0jOyJPSl7AADjuo/Dp79/iimDp2DegXnw8/bDwbMHqyxjpwadEJsR67Luzk53YnHsYpd9OjQJaoIzRq2ZT+GrhagzpQ7+3evfiM+Jx8pj2gSAjeo2wk93/4Q+c1xHL1x01yLctegufXn+qPm476f70L1Jd/x+pmxyzrCAsi8F1zW+Dre1uw3fHPxGPw8DfQL1YAwAHrv2MXz151fo3qQ7TuedRuK/ExE4JRAf//NjTNk2BSlG12Y8Gx/ciMHfDNaXH7rmIYzqOAojFozA+ze/j+fWPqc/N7e0vgUzds1wyZ/470SMWDACB87amwH5BiEyOBJHM7Xh3uv61kWBuQD3d7kf3x10vYYPbTsUI9qPwLwD8zBp0CR88vsn+OnITy7P74lnTiBwSiDccbzuDvX86unBnMOEnhMQFhiGNza/gQDvABTbh6vv1rgbZt4yE/2/1ibp7BnZE0G+QVg2ehnqTq0LALix1Y3YcHID0l9MR2ZRJl7d+Cqub3o99p7Zi8Wxi3F7h9txLOtYhXMGAPo3749tp7fpy/2a98P209v15cZ1G+PAUwfQ7+t+OJalNSecfuN0vLThJXRp2AV9m/XF+B7j0bxec9SbVq/C/sdeOxaz/5xdYf3w9sORakzF6KtH44V1L7hsu7aRFrzNunUWJm2ZhBRjCmLHx6LFzBYAgKX3LMXIhSPxzo3vYOr2qcg15WLd/etw03c3uX3+AaB3097o0aQHpt04DXWmaAPYPHndk5h3YJ4e5L3S9xU0DmqMaxpegxRjCpYcWaK/zvNHzccZ4xlsObUFUfWi8PHej/Xr3Ij2IxAZFIm+zfuiSVAT+Hv746X1L2H+qPl4Yd0LWBS7CN+O/BYPLH0Amx7ahBvm3YBZt87C06ufRh2fOigs1X7UGX31aBSVFmF53HI83PVhNAhsgHZh7fD4iscBACcnnMQ3B75B9JboSo8zZnwMkvKScMv8W1D0ahFe3/g6ZuyagXs734tCcyHWnFiD569/Hre2uRU/xvyINvXb4Nm1ZQMEta3fFm3D2qJjeEf8b+f/9PW+VYVSpQAAIABJREFUXr4wW8v6ejquxY7P5INPHYSvly9uX3i7/p4CoH9OAcCQlkMwvsd4DG45GKHvhFYo+8Cogfp3jTX3rcH209tRVFqEOfvnINeUCwBoGdISCbkJqONTB+GB4WgZ2hKbEzdX2Nc9V92DhTELEfFdBNJPpLOPCtWcHqicyAPqahdZlJQAo/xrFqhUMxv7cYsX2nprgcqK1SNxW5ABGLQG2FT5BQwA8nrPR71dNR9j/gdrc3yN9ljntR4A8LEpAqXF6fjZHIzNDe21MzesAzbdhNIhW+Dz60Ck9vgGe7eNw3D/Qq3WZNfDsHrVRbecVjgQfBCZfZYifMdI4F7tV6PAKYEwv26G71tlfWdOPXsKH+/5GKEBofjPr/8BAMSOj0WnTzrVuOzVqSrg6BjeEUcy3Xc4P1c3tLgBmxKrbpfuCYa0HIJfE379u4sBAC6BxZXKE46RyNM4fyH+q7zW/zW8ve3t6hNS7fE5gNSL00eFTb88iJdNgL59y1a47SxYSQ1INb/Gl51IAoOyr6kmSAEAvzMrq00DALfaf+R7Ib0E60+ux332QapWZqXjuUxgi1NHxiR7M5Tec2/EhiLAZvDDs0ZHDYEWmJ+wap2C1xUCIxaOBML7YOyysfovTM5BCgCMWTIG7+96Xw9SANQoSOnaqGuNjg8AZg/Xfv0a0X4EAO2LHQCUvF6C+aPmu6Q98Yz7zncAMLKDNvT0k9c96XZ79ybd3a4f2nYorm2kzc3SIbxi7UdNNKzTEABwU2vttW8d2vq89lOVAVEDqk3Tu2lvKPu5fGsb18ENwgO12U2df6Wvzpirx1SfyO7qiKtdlrs07FJtnvySfLQM0WoWmwU3qyb1pbHk7iW4OuJqfDey7Ffu8scS4B2Ax64tm/RUVXL9qONTBz2a9HBZ1695P/3+za1vxnv/eA8/31P2I8nEARPRt5l2varrW9cl72v9y6aVWnf/Opdtvl6u791pQ6a5LRMAtKnfBnFPx8H0WlnznQ9u/qDS9AAQ6l/xF0lnd3S8o8K6npE9q8zjzje3f3POef4Oi+5a5Hb9Z0NdmzmG+odi8g1aDdfkGyajjk8dd9kqeLnvy9UnAnD3VXfXKB2g/YJflXZh7arcfrENbTv0gvK/1OelGqUr/16pCef3tzvugpSU51PQM7Kny/vZned6P1fpNufX/e1tb+OBLg9UU9Lzs3z08kq3nevnYOO6jdErspe+fEubW2qUz/y66+iY7cNcJ4d1fDZU542Bb+j3h7QcUqM8Dp/88xO364N8tdHTnK+55Tm+q/xlLkZHF/7V/j8A+65uoEQ6dBCd0SjyT7h0KN+2ZqT7DulHPqhZx/bTS2TVFxD5wa9G6Yu33FVtmlHvQbyjIU8tvkMQDUE0tA778yF+k6Cvc6TffWCWnJwLafEWJGASJC7jqCAa8u4syPifHxSZr6W/5tNrBNGQftMgsq6vvh93fx1ndXRZ7v5Fd/1+39l95YnlT+jL07dPF0RDHl/+uPxvx/9c8i2KWSSZhZmyNXGr9J3dV9aeWCuR/4uUe5fcKz/F/iTTtk0TERFEQ2LSYySjMEOcWW1WWXpkqZ7Gb7KfiIh8d+A7mbV7lmw7tU1sNpvMPzhfREQ2xG+QCasmyJB5Q+Smb2+SU7mnJHpTtEzcOFHiMuNkb8pe+WDnB2K1aR3hJqyaIE1nNJV3f3tXunzaRUqtpXLHwjukxxc9ZPup7YJoSEJOgqw9sVYQDXln+zsydtlYiU2PlUFzB8mmhE3S6L1GIiKSWZipd3qsO6WuDP9huCAa8syqZ+Sj3R9Jmw/bSMS7EVJiKZE3N78pXpO85MZvbpSEnATZnLBZ2n/UXtbHrxevSV4ybuU4QTRk3Mpxsub4Gmn+fnNJzEkUREO+PfCtxGfHC6IhU7dNle8Pfi8iImnGNNl2apv+3OUU58jMXTPFYrVI4NuB4jXJS0REBn49UBANmfvnXO18mNNPEA3JM+VJnbfryI7TO0REG4jAbDELoiHzD87XX9Mic5FM3jJZDJMMegfwscvGymd7PxNEQ8YuGyuIhmxO2Kznsdls+v3NCZul1FoqplKTZBZmiog2WMKTK56UBYcWyIJDC2TN8TX6vm5fcLukF6Tr+bckbhFEQ/am7JUN8Rvk8eWPy74z+ySnOEeKzEWCaMj1X10vmxI2yZ7kPTJo7iB5ef3LIiIy+4/ZehoRkaApQWK2mN12AI/LjBObzSZHMo5I3Sl1xWwxy7ZT2ySzMFNeWf+KJOYkyotrX5Q8U56czj0tiIYsPLxQEA3Znbxb1hxfI6//+rreydNxDOU7c8akx8iTK57UBykIeydMbDabBE8N1o81OS9Z/jjzh+xM2imHzh4SREPuW3Kf3rkd0ZCNJzfKoz8/Kt8f/F7m7Z8nnT7uJIiG/Hj4R1l1bJXsT93v8tjfHvhWEA3JLsqW7KJs2X5qu2yI31B2fRHR8yAa8tqvr0mvL3vp26dsnSLv/vauWKwWuf6r6+Wn2J/ks72fyYtrXxQRkes+v04+3PWhmC1m6fZ5N2n3UTsxlZr091Wf2X30cn+852M5W3BWEnMSxVRqkrUn1krLD1rKO9vfkaYzmsr2U9vl5yM/y7iV4/T8IiInsk4IoiGP/vyoHMs8JoiGPPDTAxI+PVzuWHiHfP3n13Im/4zkmfLEVGqSpLwk/Zq1Mm6lIBpitpilxQctJCkvSd7a8pb0md1Hvj3wrTzy8yOy/OhyQTRkwNcDJD47Xk5knRCzxSwNpjcQREM/R8LeCRMR0d8DVptVCs2FsjNpp15Wm80mcZlxMmnzJPn898/lPxv+I8+veV4QDfnh0A8SPDVYT4toSGZhpiAa8vGej6XP7D7yyM+PyFMrnpIDaQfkeNZxMZWaZO6fc2XEDyMkMSdR3tj0hnT5tIuMXzle/jjzhyTnJevXIMdruPr4akE0pMOsDi7Pn8VqEURDZuyYIYPnDZYpW6fo5UA0JN+UL3+m/lnp58Whs4dk9fHV8vya52VRzCL548wf0vPLnrIpYZPkm/Kl0FwoTf7XRL9efLLnE0E0pPdXvfVrrPP+ZuyYoZfNVGqSzQmb5WzBWb1MxaXFYrVZBdGQA2kHBNGQpjOaCqIh8dnxsurYKv1a9dvp3yQ5L1lazWyl7//BpQ/KzF0zxftNb/l4z8eSakyVUQtHSdsP2+qP8dnez6T+O/VlUcwiGTp/qJ43elO0zPljjr7sGEzEce1fEbdCOszqIMuOLpNv9n8jIiL3LblPJm2eJCIioxePFkRD2n/UXhAN2ZW0S3/dX1r3kr7fpLwksdlscvuC22XEDyPkYNpBafNhG7HZbPLSupckLjNOjmQccSnXP+f/U5YeWSrHMo/pg2asOb5GjCVG/TF+T/ldEA35ct+XMuKHEbLvzD65/6f79e03f3uzIBpy1P49YvKWyRKbHiv95vTTPzM2J2yWuMw4eWL5ExKXGSetZ7aWT/Z8IpsTNsuX+76UqdumSnpBuvx343/1z49h3w+Th5Y+JF/8/oX+HO84vUMmrJogNptNsouy5aqPr9KvUUtil0hWUZasOrZK/zz6+s+vXc4TEa3Tu+N+RmGGfLr3U/296ThnX17/sjSb0UymbJ0ijy17TH+M7ae2y6pjq+Sj3R/Jj4d/FLPFLGnGNJm1e5aIiNy75F7xm+wnUe9HyZbELVJiKZE0Y5oYS7RO+SezT0q+KV/2p+6/qJ3p//Yv0Py7NH8A9l0doUTatRNdbm6NAxVr7Hs1DlTWfAGRBYE1Sm/aXMkoY/Mhd7yn3Q57V3sT3vXjXa5vyvmosDztI8jW/R9L+jxIg8naeseHY/l8XT/rKoiG3PAOxLb+hko/dBANafReI5fljMIM/f6w74fJ+JXj9eVJmyfJc2ueExGRVcdW6V+A0gvKRk/ZkrhFxq8cL6dzT0u3z7vpgYJD8/ebS0JOglSnoKSg2jTlbU3cKruSdrnd9tya5+TLfV9WKM8vx36RlPwUfV2JpUTqTa13zo/tGK3IsQ/nkUkmbpxYZd4N8Rv0+458Cw8v1Ncl5SVJobmwxuXIKc7Rlw+mHXQZncpxoXcub3mOL1UO5UdU25O8Rz7b+5mkGlNd0jles4NpByW7yHVEJAeL1eIymphIxVGiSiwlkpyX7PaxncWmx7qMbLX2xFpJNaZWeDzn26pkF2XL0PlDq03nOE7nYy/PeZS4ypQflWvM4jEV0pR/jNBpoSJSNpqRzWYTY4lR/yGgMu4CtKYzmlYYYa/IXCQ2m02S85KlxQct5IW1L1R7HDXRb06/SrftT93vdlQ/EXEZjWdTwib9/sxdM/UAu/z5JKL9mOD8WjrOR3cjBjlGYnv3t3erPQ7n57H8c1rda+78WjruR2+KFhGRV9a/Ir+n/F5pXqvNWuUobkXmIn2UPce+Y9NjXdI4nifn59RhRdwKGfD1ABERKTQXyv0/3a8/niNQqOwadDr3dJVlc5yrjtcP0ZCbvr3JJY27/M6P98r6V0REuzaU/wFga+JWl2XHDyNPLH9CX1d+hD7HPmb/MVtfl5SXJDuTdsrGkxvl2wPf6utXxq2sdqS+yvzfuv8Tm80mEe9GVJ/Yibvn45djv9RopMRTuadERLvmuRu977Flj4mIiLHEqJ8Tc/+cq293vEecz9d8U75YrJYKIzk6uBs9z8HddbImx1FcWiyF5kKX/N5veruk+XDXhxXylVhK5Kt9X8kjPz9S7WM45Bbn6kFxdS5moMI+Kh5CKbXv6gjV7VBQK8AxZndODnB/fZc+KtvDRqJf1tIK+Q81eRCdz9SgKUK/xVi/7k78I7guYCmoNrk5rDd8s7QmOJuKgGv8gPr2vsmjzgA/NQGGnwFWFGqdAB2jVAGAtAXUcbgst0oAerS8FdNKV6PzKaDQzem9LhK4yam/6M2BwMthvhic5H5ywqd7PI1Ze2fpy3d0vAOL716Ml9e/jAm9JiA2IxZ7z+zFaxtfw/O9n8eEXhOglELzes31PDaxwaBcW1qKaHOYWGwWeBu8XbZFvBuBQ+MOoWHdhlU+fxdbqbUUXgavCmV1x1H+K9HGhI0Y3HJwlWlO5pzEvjP7cNdVd1WZDgB2Ju3E9c0qdmD3BG7nVbrIYtJjcFXEVfpyqbUUPl4+F2Xf7t67DiKCotIi1PGtWTMmqt6u5F3o3bQ3ACA5PxlNg5v+JY8TPDUY+f859z5TVZ0Pi2IW1eh6UBPh08OR+VJm9QmvIO4+C2u7U7mnEBUSdcH7udDr5NRtU/Gf/lrTdGOJEUF+QdXk0EYwzSzKrNBc+WK47rrrLtqEj5fXGUEXzmkCIvd9VNyrY6rppEz2Ma9V5aNAOXMEKQDwgxG4ys3cj46vwvX8XEc2Ge5mrrAECxBRlI22KUBlR3dTubmpfBRQYKl8BvXy7eMd/TDe+cc7AIDI4Ejc2OpGtAxpiV5Ne7m9aLn7YHN8yXd3YTZZTPD39q+0TH+Vc/lyd6UGKQCqDVIAbYSvVqGtarQ/Tw1SLhXnIAU4t/O4OlUF7UopBikXmSNIAfCXBSmANrrh+ajqfLhYQQoApL6QetH2dbm43IIUABclSAGApOcubOJLR5ACoEZBCqCNONiobqMLetxLgZ3pPYmCa6Dy7rvaul8qy1CmVXbZKFHJpVUkBOCnANTgF/nyDpvdBxdr7SNrrji2AhF1IvT1Kwrd72d3yu5KgxR3fBXgCFPKf/H8duS3eLmf1qnv+1Hf49V+r7q9mCqlMKbzmBp/ca3OxIETEeATcFH2RfR3eu8f71WfiOgS8/P2+7uLUKWLGWxT7fdXBuWXOwYqnsa5FmW6ffLDc6xtPF3VlB1iRb8AQGpYo+JMAbC6KUuJfV2uKRcvXv9ipfkfTjvnhwSgvQmKbNrITo7RtRwjL/2j1T8Q4h+CiQMmYkznMQgLDLskv/q82OfFCqMXEV2OXujzQvWJiIiI3GCg4mnK90kq13rHXf+U8rYVV7Fxn30Co/MIVAyovLmWg2Oyrq9HfF1h2zw3Q7nXD6jvdj9PdHsCAPDRrR8hO3wQHk8HpgyZojc7OP2cNgO441etSTdMAgD8q8e/MHnw5OoOhYiIiIgu0OXXIJD+dpuLgUpHtjc5qjXOPQa2AiioZvL0G1rcgDo+dTC8/fAa7bNTg04us/3OHzUfS48uReOgxgCAp3s+jah6UdiYuBktQloA0GbIBoCHuz5cYaz/2t5cgIiIiOhKwRoVD6KU45/zSpxz0y8bgJzqqj7Oo0ZlpwkY5qaDPKBNPtepQScMaTUE/+n/H/gYytrvlp9M7T/9tE5lmx/ajADvAOx4dAeubXQtAn0CYbFZEOAdgG6Nu+npy3daH9hiIACt1oaBCREREdHfg4GKp3EEKilOQ18J8MjGmu/CBiChmg71hZaq2odpyvdHGdlhJMwCpLjpA9MhvAOch9J2NMmafuP0CqOwOGZeb12/NVaMWYHeTXtj59idsNgsGNZuGKIHRWN4++EY1GIQALDTOhEREVEtxEDF0zgCFUenevtiVknNd2ETwKuakWkzi3Oq3U/5ipwUYwq8FWBxU8NTfux6R43K2G5jXda/dcNb6BjeEYA2ioaftx+UUvD18oXZakb9gPr6yFybHtJGMgvwDsDcEXOrLS8RERERXTrso+KpqulUXxUbgOoadrkbvavIBiSgLq4yFGCBERjlOj0J9qTsQSufskBFKWBHMXDgqQMwW80uo2B5GbQS1A+oDy+nZmavDXjNbXmUUnoflPI6NuiIZvWaVXNERERERHQpsUbF0zhqVD78sGzdOfZREbjWqEzOqpimtY/7XvHT07XZ6uPMWs1MeblW4HP7ZMEj2g9HqhXoHNG5QqDi8lj1W2Prw1urLXf8hHi36wN9Al3mZyEiIiKivx8DFU/jCFRmzLAvazfugobKlErZ3CYAYKphXsfJNs8eiDhCma3F2j4BINsGvGtvNdYloou9yApmq7nCBFgdwjsAAOYMn4P+Uf2rf/zzmISSiIiIiP4e/Obmadw1+RJAzqHpV4loNSIONZ0Fvny/Fkeg8qMR+FybHkUPPgDXwKJFSAs83u1xl/yx42MBaIEMACT8O6GGJSEiIiKi2o6BCp0zs7h2aalm6hOdFwCD0pqOCQAfL23oX+d9Oc9bopyGUm5erzkevOZBl/2pckMtO/dB+XbktzUsFRERERHVRgxUCIKaBxsAUChAqH+ovuyu47w7BgX4qbKmYgZD2VgOjl0opRDiH2JPb0B4YPg5lKzM/V3uP698RERERFQ7MFDxdPZKiXNp+qXqtkYd30B9uaZBTr5VC1RKHBkq6TOS+kKqvWjKZe4UIiIiIvIcDFQ8narYbaUqt50BYv8VC+cGW1UFKvud5mdpkADsKgaWFzrWGBxFgAD4+Z6fUde3rj5TvEEZIOc6JBkRERERXREYqHiSKmpNahoOWATw9fJF54ir9XVVNf1a0rxsXhOzAHtKgI3F9sez9zFRCni468Po2qgrxlw9Rk9vUIZzi6KIiIiI6IrBQMXTKDfRigC2Gjb9SrFot0F+wfq6qmpUGgY1qnSb2U/bpqDNZRIVEoUnrnvCqViCHFP1M9wTERER0ZWHgYoHcRuLqLKmVzVxyFxxXVU1Kk/3fNrt+jgzcLZZWYd3b4NPhTQmi4kNv4iIiIg8FAMVT+OmKdV5BQNBbfS7NelMv67QdXlhAWBsPKzKPCKCen71zqNwRERERHS5Y6Di6RQA23kEK9e8rd89Xgo0c5pr0WgDzlpck7ubFNLL4AUA8K5k9C+rWBHg43+uJSMiIiKiKwADFU/jpo9KTZp+TcqqfNuWYiDZKTBRcB+YNAtuBgAY0nIIAMBLaYHKm3f/CjS+tUL6IkMdpCGompIRERER0ZXIu/okdEVTgBIgLCAUQOUd1z/LA94Iq/luq+q3YrFpUY2jRiWw0aCKibp9gIjwW5Ds36rmD0pEREREVwzWqBCAslG/9pkufF/21mQYecZ1/YReEwAAAT4BALQalQdzKxkVrMO/0T68PcZ0HuN+OxERERFd0RioeJCqZnl3bDlZeuGP42j6dbpcP5UXrn8Bea/kYfno5QC0GpUtZt8Lf0AiIiIiuuIwUCEAQN+o/lVuP5fO9t4GL9gE+GTopy7rlVII9guGj5c2FLGX8oLV5q43CxERERF5OgYqns7ek/6F65/XF2tqt5tmYusKAQXRhiy2d5Z3x0t5wdvgrfdXISIiIiJyxkDFk7iLQhxDftmHCHY3cT3gvkald1LFdd8YAS97oGJQlY/VkPNyDrwMXrAKa1SIiIiIqCIGKqSxRyi2C5gKPstmQLEABggEgMFQeaAS5BfEpl9EREREVCkGKp7o9dcr3XRXJdOWVBW/PNr1UQDAtemN8FOBtk4BUFU0/QLAGhUiIiIiqhQDFU/0dtms8nrTL8P5nwoGe7Mxi9OoYl4oC1RuTXGfjzUqRERERFQZBioexG33E72PStXd6B0hyE2tb6q4C73ZmE1fZwCgDKxRISIiIqLzw0CFNFUEKhlOA3M92+tZ/f6EntoEjvX86gEoC1QWB90KgwIMBp8qH5I1KkRERERUGQYqVC3nGKZro676/Zm3zgQATLtxGoCyQGV/nW5o6QP4ePlp66FNAFmet8GbNSpERERE5BYDFU9X06Zf9rZfjYMau6zvm6Q14QLKAhUve9+UjuHtAQDri4C7Uyvu06AMLs3FiIiIiIgcGKh4uISOjasNVBSAZaN/drtth9Okj3qg4uibYtU2CoBiN8OGqWqCIyIiIiLyXAxUPNypTk1qlK5Dg47VpnE042oZ0lJb4VPvvMtFRERERJ6NgYoHUUq5qTkRx0YAQLzZTT4AItXPBOmoUbnrqru0FYHVB0GbHtpUbRoiIiIi8jwMVDyJUmWdTQBgwQIoiEvTr8fSXbPshKNPSvXNtByBiqpBWodBLQbVOC0REREReQ4GKp6so705l3MflXKzyb9j6FnjsEMPVNj3hIiIiIguEAMVTybiJghxXeMIOqpv+FV1jUrPyJ7nXj4iIiIi8lgMVKqglGqrlHpZKbVRKZWklDIrpc4qpZYppW6oJu9DSqk9SqkCpVSeUmqzUmpYFem9lFLPKaUOKqWKlVLZSqlVSqk+F/mgXJfFtY/KcYsX1lrC9c0dw6vvRO9QVY3K7sd2n2NBiYiIiMiTMVCp2mQA0wA0BLAKwP8A/AZgKICNSqkJ7jIppd4DMBdAYwBfAvgOQGcAK5RST7tJrwAsADADgC+AWQCWAhgAYKtSasRFOyJ3neIFQEAAACDbZsBOW4i+6dnez0KhZv1OzqePChERERGRO95/dwFquTUA3hGRP51XKqUGAlgP4F2l1CIRSXXa1gfACwDiAfQQkRz7+ncB7APwnlJqpYgkOu1yNIA7AewAMERETPY8nwHYDuBLpdRGETFe/EO0By4dOwJ/apMwOgcajvtSSewxf9T8CuvYR4WIiIiILhRrVKogInPLByn29VsAbIZW+1G+adZT9tu3HUGKPU8igI8B+AF4pFyecfbb1x1Bij3PXgALATSAFshcEIG4ndhx/6i++v3yQYZSVdeP3Nv53grrWKNCRERERBeKgcr5K7XfWsqtH2y/XeMmz+pyaaCU8ocW7BQB2FaTPOevYrMvBUFOVITTsvsgowbTqAAAXun7ihbs9JpzXiUkIiIiIgLY9Ou8KKWiAAyBFlxsdVpfB0AkgALn5mBOjttv2zmtaw3AC8BJESkf9FSWp6qy7atkUwcIKkQc2pJTU6/yNSrnWD8y9cap2p3WZZVGEXUiKklNREREROQeA5VzpJTyAzAfWhOul5ybdwGoZ7/NqyS7Y32I07rzyXPRKG0SFX3ZoAwwKNfARQB4GbyAyNvO6zFSnk+5wFISERERkae54pt+KaUSlVJyDn/fVbEvLwDfAugLre/Ie5fqOGpKRK5z9wfgKKAq9FEpX1vitv5EAWEBocDA5ZU+7sCogZVu8zYwHiYiIiKic+MJ3yDjAZiqTVXmjLuV9iDlOwB3AfgRwP0iFXpuOGo/6sE9x/rcC8xzXuyjBzutEHvbLy04+SDHfdMvm6hqO6lsfngzvj/0/YUWkYiIiIgIgAcEKiIy5EL3oZTygdbc6y4A3wN4UESsbh6rUCmVAiBSKdXYTT+VtvbbY07r4gFYAbRSSnm76afiLs95cYk1nn0W6NIFOCH60MM9h/+GbpvfAGyn9WRKKdgAN1FORe5GACMiIiIiOh9XfNOvC6WU8gWwCFqQ8g2AB9wFKU422m9vcbPt1nJpYB+OeAeAQAD9a5LnfFnMTrUl9eoBBu3ldzT36tOsD17r/xrKNwgTp/9ERERERJcCA5Uq2DvOLwUwAsBsAI+IVFu18Jn99jWlVKjTvloA+BeAEgBfl8vzqf32LftwxY48PQDcAyADwJLzO4oyFnPFl1tps6s4LWtBypKCsmXtgBmoEBEREdGlc8U3/bpAnwH4J4BMACkAJrqZdX2ziGx2LIjIDqXUDADPAziolFoMbWLIewDUB/BMuVnpAWABgFHQJnX8Uym1AkCYPY8XgMdFJP/iHpqzih3oi+3hmEAwLc8P//Ou+9c9PBERERFROQxUqtbSfhsOYGIV6TY7L4jIC0qpQ9BqUJ4AYAPwB4B3RWRl+cwiIkqpMdCagD0K4BloAwBsBfCWiOy4wOOogkDKDUesytWezC7ww/+8A/+6IhARERERlcNApQoiMugC8s4FMPcc0lsAvG//u2QU3NWnlKk4sBkRERER0V+PfVQ8lbj2TCm7VzFscdPcjYiIiIjoL8VAxVPpwYdU6CYvUnEdEREREdGlxECFXGpRyteeCMT9bPVERERERH8hBioeTolrZ3p/b3/U8a2jL4sIm34RERER0SXHQIVcaky6N+mOZ3s9qy/7ePmgd9Pef0exiIiIiMiDcdQvT1OudiTVqz68vENd1hmc0gT7BeOXe38aFadlAAAZJUlEQVS5JEUjIiIiInJgjYqnKTfc8K9+XZEc2KFisktVHiIiIiIiNxioeDiO70VEREREtREDFU+TkFBhFTvLExEREVFtw0DFUx04UMVGQdv6bS9ZUYiIiIiIymOg4qmOHatyc4BPwCUqCBERERFRRQxUPJW9uZeIuz4qbApGRERERH8vBiqeyqlfSsWZ5wUh/iGXtjxERERERE4YqHgqQ9UvfYuQFpemHEREREREbjBQ8VRVjfRVtzUQ1uvSlYWIiIiIqBwGKh7O7TwqEf2AduMvfWGIiIiIiOwYqHgqe9MvEeE8KkRERERU6zBQ8VROfVQqdqYnIiIiIvp7MVDxVKxFISIiIqJajIGKBymo41O24Of39xWEiIiIiKgaDFQ8SGGAd9nCoEEAKulMT0RERET0N2Og4kmcW3s9+mjZajYDIyIiIqJahoGKp+nWTbtlcEJEREREtRgDFQ+ioIA77rAvMFAhIiIiotqLgYqncQQo9luRKvqoBLe/BAUiIiIiIqqIgYqncVOTUuk8KkOP/MWFISIiIiJyj4GKp6pJ0y82DyMiIiKivwkDFQ+ioCo0/SIiIiIiqo0YqHiacgEK51EhIiIiotqIgYoncY5RnDrTcx4VIiIiIqptGKh4GgYlRERERHQZYKDiaRioEBEREdFlgIGKpzmX4YmJiIiIiP4mDFQ8iEtA4uijws70RERERFQLMVDxNO5qVNgcjIiIiIhqGQYqnoZBCRERERFdBhioEBERERFRrcNAxdOUm5mefVSIiIiIqDZioOJBFBRH/SIiIiKiy4L3310AusTKBSoPXfMQIoMi/6bCEBERERG5x0DFk7ipOBnUYtAlLwYRERERUXXY9MvTZGf/3SUgIiIiIqoWAxVPs327dsthiomIiIioFmOg4mkMfMmJiIiIqPbjt1YPoqAAL6+/uxhERERERNVioOJpWKNCRERERJcBfmv1NI5AhX1UiIiIiKgWY6DiQZRSrFEhIiIiossCv7V6EAUGKkRERER0eeC3Vk/DJl9EREREdBlgoHKOlFJfKaXE/temkjReSqnnlFIHlVLFSqlspdQqpVSfKvYboJSapJSKU0qZlFLpSqkflVIdL+oBsEaFiIiIiC4D/NZ6DpRStwEYC6CgijQKwAIAMwD4ApgFYCmAAQC2KqVGuMnjB2A9gIkA8gHMBLABwEgAvyulel20g2CgQkRERESXAe+/uwCXC6VUAwBfAlgIoBGAgZUkHQ3gTgA7AAwREZM9/2cAtgP4Uim1UUSMTnmeB9AXwGIA94iIzZ5nIYCfAcxRSnV2rL8gjkDF1/eCd0VERERE9Ffhz+s194X99l/VpBtnv33dEaQAgIjshRbkNIAWyADQa2Cesi++5ByMiMgyANsAdELlgdG58fHRbuvXvyi7IyIiIiL6KzBQqQGl1MMAbgfwpIhkVZHOH0AfAEXQAozyVttvBzutaw2gOYBjIpJQwzznLzQUmDHjouyKiIiIiOivwqZf1VBKRUHrM/KdvYajKq0BeAE4KSIWN9uP22/bOa1rb789Vsk+3eWplFJqXyWbOuj32E+FiIiIiGo5fmOtglLKAGAetM7zE2qQpZ79Nq+S7Y71IReYh4iIiIjoinbF16gopRIBRJ1Dlvkicr/9/nPQ+oYMFZGci122v4KIXOduvVJqn4LqdqnLQ0RERER0Pq74QAVAPABTtanKnAEApVQ7AG8D+FpEVtUwr6P2o14l2x3rcy8wz/njhI9EREREdBm44gMVERlynlk7AfAD8IhS6pFK0hzXBu3CSBH5GVpQZAXQSinl7aafSlv7rXN/lDj7bWV9UNzlISIiIiK6ol3xgcoFSAQwu5JtQ6HNpbII2gSNiQAgIial1A4A/e1/m8rlu9V+u9FpXTyA0wDaKaVauhn5y10eIiIiIqIrGgOVSojIfgCPudumlNoMLVB5VUROlNv8KbQg5S2llPOEjz0A3AMgA8ASp8cR+2SQUwBMV0o5T/g4wr6vWABbLuLhERERERHVagxULr4FAEZBm9TxT6XUCgBh0IIULwCPi0h+uTwzAAyz59mtlPoV2twqd0Gbk+XRizIrvYPIRdsVEREREdFfgcMTX2QiIgDGAHgegAXAM9ACl60ABribi0VESgD8A8BkaMMQP2df/hlADxHZfVEKx370RERERHSZYI3KeRCRQdVstwB43/5X030WAZho/yMiIiIi8misUfE0HJ6YiIiIiC4DDFQ8iHK0/WIfFSIiIiKq5RioEBERERFRrcNAxROx+RcRERER1XIMVDwRm34RERERUS3HQMXTsDaFiIiIiC4DDFSIiIiIiKjWYaBCRERERES1DgMVT8Q+KkRERERUyzFQISIiIiKiWoeBigfRJ3wkIiIiIqrlGKh4Go76RURERESXAQYqnoh9VIiIiIiolmOgQkREREREtQ4DFU/E5l9EREREVMsxUPFEbPpFRERERLUcAxVPwooUIqL/b+/eo+Wq6gOOf38kmPB+BAEf0CQuVFSsD0RFBWK7WCpYWsXV2hbBYqmuogK6ahfFGrUiKvIQsK6C1KKtWnzQWhHUIgj4VlDRUAENBkQgBGJCLsHAr3+cfc1hMnPvubm5M2fmfj9r7TUz++x9Zs/Z59yZ3z1nny1JGhIGKpIkSZJax0BltnF8iiRJkoaAgcos8rsJHx2jIkmSpJYzUJEkSZLUOgYqkiRJklrHQGW2cYyKJEmShoCBymzj+BRJkiQNAQMVSZIkSa1joDLbeOmXJEmShoCBymzk5V+SJElqOQMVSZIkSa1joDKL/G7CR0mSJKnlDFRmG8eoSJIkaQgYqEiSJElqnbmDboD6Z85Wc+Ckk2Cu3S5JkqR28xfrLLL7drvDYx4z6GZIkiRJk/LSL0mSJEmtY6AiSZIkqXUMVCRJkiS1joGKJEmSpNYxUJEkSZLUOgYqkiRJklrHQEWSJElS6xioSJIkSWodAxVJkiRJrWOgIkmSJKl1DFQkSZIktY6BiiRJkqTWMVCRJEmS1DoGKpIkSZJax0BFkiRJUusYqEiSJElqHQMVSZIkSa1joCJJkiSpdSIzB90G9UFE3LPNNtvsuu+++w66KZIkSRpRy5YtY2xsbFVmLpjuugxUZomIWA/MAX446LZoi3hyebxxoK3QlmSfjhb7c/TYp6PF/pw5C4HfZOai6a5o7vTboiFxA0BmPnvQDdH0RcT3wf4cJfbpaLE/R499Olrsz+HgGBVJkiRJrWOgIkmSJKl1DFQkSZIktY6BiiRJkqTWMVCRJEmS1DrenliSJElS63hGRZIkSVLrGKhIkiRJah0DFUmSJEmtY6AiSZIkqXUMVCRJkiS1joGKJEmSpNYxUJEkSZLUOgYqIy4iHh8RF0bEryJifUQsj4izImKXQbdtNoiIIyPinIi4OiJ+ExEZEZ+YpM6BEXFpRKyKiLGI+FFEnBARcyaoc3hEXBkRqyNibUR8OyKOnuR9jo6I75Tyq0v9wzf3s466iFgQEa+LiM9HxM2lb1ZHxDURcWxEdP17an+2W0S8LyL+NyJWlP5ZFRHXRcQ7ImJBjzr26RCJiL8sf3szIl7Xo8yM909EzImIE8v+Mr6vXRoRB073M46y8rsle6Rf96jjMToqMtM0ogl4AnAnkMAlwGnAFeX1jcCCQbdx1BNwfdnea4Bl5fknJih/BLABWAt8FPhA6asELu5R5/iyfCVwHnAmsKLknd6jzull+YpS/jzgnpJ3/KC3WxsT8PqyfX4F/DvwXuBC4L6S/xnKJLr25/Ak4EHgW6UvTwPOAb5btt3twF726fAmYK9yjK4p2+51g+gfIICL2fj9+4Gy/6wt+9MRg95WbU3A8tKHS7ukt3Yp7zE6QmngDTDNYOfC5eWAeWNH/hkl/yODbuOoJ2AJsE/5kjqECQIVYEfgLmA9sH8tfz7wjVL3zzrqLAQeKH8cF9bydwFuLnWe31HnwJJ/M7BLx7ruKetbOJ3PPYoJeDHwcmCrjvw9gV+WbfpK+3O4EjC/R/57ynb9sH06nKn83f0qcAvVj9VNApV+9Q/w6lLn2vo+Bzyn7E93ATsMepu1MVEFKssblvUYHbHkpV8jKiKeABxKdYCf17H4HcD9wFERsV2fmzarZObXMvOmLH/BJnEk8GjgU5n5vdo6HgBOKS/f0FHnr4B5wLmZubxW517g1PLy9R11xl+/p5Qbr7Ocal+ZB7y2QXtnlcy8IjO/kJkPd+T/GvhIeXlIbZH9OQRKf3Tzn+Vxn1qefTpc3kT1D4bXUn3nddOv/hnfL06p73OZ+V3g01T71ZFNPpQm5DE6YgxURteS8vjlLj+s1lD9V2db4Hn9bph6enF5vKzLsq8D64ADI2Jewzpf6igznTqa2G/L44Zanv053F5eHn9Uy7NPh0RE7Et1Kd/Zmfn1CYrOeP9ExHyq/8CvA66ewvtoo3llrNHJEfHmiFjSY7yJx+iIMVAZXU8qjz/rsfym8vjEPrRFzfTss8zcAPwCmAssbljnDqr/Ij4+IrYFKGfQHgesLcs7uV9MUUTMBV5TXta/tOzPIRIRb42IpRFxZkRcDbybKkg5rVbMPh0C5Zj8ONUlmSdPUrwf/fMEYA7w87KfNKmjR9qTqk/fA5xFNd72pog4uKOcx+iImTvoBmjG7FQeV/dYPp6/cx/aomY2p8+a1NmulFu3me+hiZ0GPA24NDMvr+Xbn8PlrcAetdeXAcdk5t21PPt0OPwj8EzghZk5NknZfvSPfTo9/0p1JuonVDdFWEw1+P044EsR8fzM/GEp6zE6YjyjIkmbKSLeBLyF6o4yRw24OZqGzNwzM4PqP7evoPoxdF1EPGuwLdNURMRzqc6ifDAzvzno9mj6MvOdZYzgnZm5LjNvyMzXU90YaBuqu39pRBmojK7xiH6nHsvH8+/rQ1vUzOb0WdM6qzse3S+mKSKOB84GfgosycxVHUXszyFUfgx9nupmJAuAi2qL7dMWK5d8XUR1Cc/bG1brR//YpzNj/CYmB9XyPEZHjIHK6Pq/8tjrGsnxO9n0GsOi/uvZZ+ULeBHVYO2fN6zzGKrT1bdl5jqAzLyfam6I7cvyTu4XDUTECVTzbdxAFaR0m3TM/hximXkrVRD61IjYrWTbp+22PdV23hd4oD4xINXdLgHOL3lnldf96J9bgIeAxWU/aVJHkxu/LLN+91KP0RFjoDK6vlYeD42OGbMjYgfgBVTXWn6r3w1TT1eUx5d0WXYQ1V3avpGZ6xvWeWlHmenUURERb6Oa3Ot6qiDlrh5F7c/h99jy+FB5tE/bbT3VBH/d0nWlzDXl9fhlYTPeP+XWuN+g2j9eNIX30cTG71paDzo8RkfNoCdyMc1cwgkfW5VoNuHj3UxtoqpFOFFVP/vw7WXbfQ/YdZKy9mfLE9V/UHfqkr8VGyd8vNY+Hf5ENY6h24SPfekfmk34uOOgt1PbEtXZse265C+kurtWAifX8j1GRywNvAGmGezc6paId5aD6RLgvVQRflKd6lww6DaOegL+GPhYSZeVbX9LLe/0LuU3AGuBC4D3Uw3UTuBiILq8xxvL8pVUE02dCawoeaf3aNcHy/IVpfx5pX4Cxw96u7UxAUeX7bOhbLOlXdIx9ufwJOAEYAz4CvAv5W/kheUYTeAO4Cn26fAnegQq/eofIMr+kcCyst98tOxHG4AjBr2N2phKv60Bvgh8GHgf8Jly3GbJf1RHHY/REUoDb4BphjsY9qK6td8dwIPArVT3IN9l0G2bDan25dgrLe9S5wXApcC95Y/xj4ETgTkTvM/LgavKH/T7ge8CR0/StmNKuftLvauAwwe9zdqaGvRlAlfan8OTqG4rfS7VZXwry4+b1WU7LqXHWTP7dPgSEwQq/eofqikhTiz7y1jZfy4FDhz09mlrAg4GPkkVaNxHNbnu3VT/XHgNXYKOUs9jdERSlA0tSZIkSa3hYHpJkiRJrWOgIkmSJKl1DFQkSZIktY6BiiRJkqTWMVCRJEmS1DoGKpIkSZJax0BFkiRJUusYqEiSJElqHQMVSZIkSa1joCJJkiSpdQxUJEmSJLWOgYokaUZFxJURkSUtHXR7hkVtm2VEHDLo9khSvxmoSJIkSWodAxVJkmo8AyRJ7WCgIkmSJKl1DFQkSZIktY6BiiRJkqTWMVCRJEmS1DoGKpKkvovKYRFxcUTcHBHrImJlRHwnIk6OiN0armfbiDgiIs4og+Bvj4ixiHggIu6IiGsj4rSIeNIk61k4PoAeOLi26B0dtwmup4WTrHO/iHhXRFwdEStKu8Yi4raI+GpELI2IZzb5nLV1zo2IV0XEFyLiF+VzroyIb0XEKRGx01TWJ0ltFpk56DZIkkZYRFzJxh//7wTOBi4CDp+g2krg2Mz87wnWexxwJrBtg2Y8DFwAvCkz13dZ10LgFw3WU7coM5d3WdcewLnAK4FosJ53ZubSLuupf0EvKe37JPD8CdZ1F3BYZn6vwftKUqvNHXQDJEmzyhzgv4AXldergGVUZ/ifDOxS8ncDPhsRr8rMS3qs64k8Mki5h+rH/G+ArYG9gd8ry7YCjgP2joiX5ab/pRsDLi/PD6i14xbg5h7vP9aZERH7AV8E9upYdCtwG7AB2APYh2pbAOzcY/11uwP/RvWZAH4JLKf6nE8HtquVuzwinpqZv26wXklqLc+oSJJmVMcZlbuBRwP3Am8GPpmZG0q5rYGjqM6S7FjKrwGekpm3dVnvB4DnAP8BfCkzV3Qpsxh4G1WQMu7Nmfmhhu3terajR70FwPfZGBwBfAw4NTNv6ii7HfBS4Fjgxsw8scv66l/QK6mCt6uAEzPzulq5+cApwD/Uyl+QmX/dpN2S1FYGKpKkGdXxwx+qMxEH9bo8KSJeCFxBdbYA4FOZ+eou5bbPzLUN2/D3wHvLy18CizPzoQbtnUqgchFVoDXu2My8sEG9rp+jI1AB+ALwivHArkv5C6gCH4C1wO6ZuclZH0kaFg6mlyT12/snGkORmdcA9TMeryzjPjrLNQpSxt+T6tIrqC6f2n8KdScVEYuAP69l/XOTIAUaf441wDG9gpTi/bXn2wNTGqgvSW1joCJJ6qeHgA83KHcOMH5GYWvgj6bzppn5MPDtWtYB01lfF3/KxjEnvwXevYXX/6nMXDVRgcz8GVAfl/LULdwGSeorB9NLkvrpB5l512SFMvPWiPgJ8LSS9Vzg/F7lI2Jv4MVUA8v3AHYAHtVRbL/a88dPpdEN1C9tuyYz79jC67+2YbnbgD3L8yaD9CWptQxUJEn99OMplh0PVJ7YrUBEPA04A/hDmt0KeNyW/hG/b+35TNwauOkdvO6vPW9y22ZJai0DFUlSP92zmWV36VwYEYcBnwXmbUY7NqfORHatPZ/0jNFm2GTulwamErhJUus4RkWS1E8PTqFs/cf5IwKLiHgc8Ola/jrgI8CfUJ3d2BmYl5kxnqjmIZkp82vPH5jB95GkWcMzKpKkftphCmV3rD1f3bHsRDZOcrgaODAzf7oF33uq7qWabBFgpxl8H0maNTyjIknqp0VTKLu49vzOjmUvqT0/u0GQApvOFr8l1QfPP2kG30eSZg0DFUlSPz0nIib97omIucCzalnf7yhSn/39Ow3Wtz3w+41aCA/Xqzas883a84MjwvEhkjRNBiqSpH7aEzikQbmX8cgB9Fd1LN+aqTmKTW9X3Ev9zlnbNKxzWe353lTtlyRNg4GKJKnfTo2IOb0WRsTWwD/Vsn4OfK2j2K9qzw+a6M3KrPbvmkL76pdx7dOwzv8At9RenxMRjlWRpGkwUJEk9dtzgfMjYpMzHBExH/g4j5yc8dTMzI6iV9Se/21E7N/tjcpEkF8BdptC++qXmR0aEfv1LFlk5kPA39WyFgFXRsTiHlXG23dARBw5hbZJ0qzhXb8kSf10CdVA+NcCz4uI86kmdgyqWeX/hkeexfhyZn60y3rOAo4B5lDd/evqiLiAKihZRXUHrj8oZbYFVpT3aXJJ1mfL+ueXutdHxPVUZ3EeqpU7LjN/N2dKZn4uIs4ATipZzwCWRcTFpV0rSv09qMbfHEY1oeXZwGcatEuSZhUDFUlSP/0Q+BxwIdV8J2dMUPabQNezDZl5Q0ScRPUjH6qg4viSOt1NNb/KG5s0MDNXRsQbgPOpvie3ogosntVR9IQudd8SEauBpVTB16OAvyhJkjQFXvolSeqrzPw4sAS4vkeRtcC7gSWZuWaC9XyIKpBZ3qPIg8DFwNMzs/OuYZO18WPAs4HzgOuA+4ANDeu+C9ifatzKRHXWUZ29+cRU2iZJs0VsetmvJEn9UcZ/PAN4LDBGNSD9iswcm8I65gDPK+vZmWryxduBqzLzvi3e6CmIiB2AF1HdCWxXqsDlbuBG4AeZuX6AzZOkVjNQkSRJktQ6XvolSZIkqXUMVCRJkiS1joGKJEmSpNYxUJEkSZLUOgYqkiRJklrHQEWSJElS6xioSJIkSWodAxVJkiRJrWOgIkmSJKl1DFQkSZIktY6BiiRJkqTWMVCRJEmS1DoGKpIkSZJax0BFkiRJUusYqEiSJElqHQMVSZIkSa1joCJJkiSpdQxUJEmSJLWOgYokSZKk1vl/wDBplRGFE6QAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 271,
       "width": 405
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "plt.plot([x[0] for x in gan.d_losses], color='black', linewidth=0.25)\n",
    "\n",
    "plt.plot([x[1] for x in gan.d_losses], color='green', linewidth=0.25)\n",
    "plt.plot([x[2] for x in gan.d_losses], color='red', linewidth=0.25)\n",
    "plt.plot(gan.g_losses, color='orange', linewidth=0.25)\n",
    "\n",
    "plt.xlabel('batch', fontsize=18)\n",
    "plt.ylabel('loss', fontsize=16)\n",
    "\n",
    "plt.xlim(0, len(gan.d_losses))\n",
    "# plt.ylim(0, 2)\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gdl_code",
   "language": "python",
   "name": "gdl_code"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
